Здравствуйте!
Помогите, пожалуйста!
Есть код, который выполняет подсчет результатов теста, выбор ответов на вопросы теста происходит через нажатие радиокнопок. Перед подсчетом скрипт проверяет все ли кнопки отмечены, если нет, то выводит сообщение, если да то считает, и по замыслу должен записывать результаты в БД или файл, в этом и проблема. Если кнопку сделать type="submit", то вне зависимости появилось сообщение или нет, то есть на все ли вопросы ответил пользователь или нет, запись происходит пустой строкой, а если type="button", то данные не записываются. Как записывать данные по условию, когда пользователь выбрал все ответы, и скрипт произвел подсчет (результат которых он и будет записывать). Пыталась вставлять после document.C.tDiagnosis.value = document.D.elements[dx].value; вызов submit формы, но записи нет. Как можно такое реализовать?
<script type="text/javascript">
<!--
function checkRadio(elem, radioName){
var sel = false;
var radios = elem.getElementsByTagName("input");
for(var k = 0; k < radios.length; k++){
if(radios[k].type == "radio" && radios[k].name == radioName){
if(radios[k].checked){
sel = true;
break;
}
}
}
return sel;
}
function makeDiagnosis(){
var sel = false;
var radioDiv = document.getElementById("rb");
var radioNames = new Array("rb1", "rb2", "rb3", "rb4", "rb5", "rb6", "rb7", "rb8");
for(var k = 0; k < radioNames.length; k++){
sel = checkRadio(radioDiv, radioNames[k]);
if(!sel){
break;
}
}
if(!sel){
alert("Укажите Ваше отношение ко всем предложенным утверждениям");
}else{
tQcnt = 8;
tDcnt = 17;
summa = 0;
for( j=0; j<document.Q.rb1.length; j++ ) {
if( document.Q.rb1[j].checked ) {
summa += eval(document.Q.rb1[j].value);
}
}
for( j=0; j<document.Q.rb2.length; j++ ) {
if( document.Q.rb2[j].checked ) {
summa += eval(document.Q.rb2[j].value);
}
}
for( j=0; j<document.Q.rb3.length; j++ ) {
if( document.Q.rb3[j].checked ) {
summa += eval(document.Q.rb3[j].value);
}
}
for( j=0; j<document.Q.rb4.length; j++ ) {
if( document.Q.rb4[j].checked ) {
summa += eval(document.Q.rb4[j].value);
}
}
for( j=0; j<document.Q.rb5.length; j++ ) {
if( document.Q.rb5[j].checked ) {
summa += eval(document.Q.rb5[j].value);
}
}
for( j=0; j<document.Q.rb6.length; j++ ) {
if( document.Q.rb6[j].checked ) {
summa += eval(document.Q.rb6[j].value);
}
}
for( j=0; j<document.Q.rb7.length; j++ ) {
if( document.Q.rb7[j].checked ) {
summa += eval(document.Q.rb7[j].value);
}
}
for( j=0; j<document.Q.rb8.length; j++ ) {
if( document.Q.rb8[j].checked ) {
summa += eval(document.Q.rb8[j].value);
}
}
dx = -1;
for( i=0; i<tDcnt; i++ ) {
if( summa >= eval(document.L.elements[i].value) && summa <= eval(document.H.elements[i].value) ) {
dx = i;
break;
}
}
document.C.tDiagnosis.value = document.D.elements[dx].value;
}
}
// -->
</script>
<FORM action="" method=post name="C">
<TEXTAREA cols=60 name="tDiagnosis" rows=6></TEXTAREA>
<CENTER><INPUT name="pbSubmit" onclick=makeDiagnosis() type="button" class="button" value=Продолжить></CENTER>
</FORM>