пробовал так:
document.querySelector('#text').value += ((time * course) + otchet); |
Что не так делаю,подскажите пожалуйста:
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style> * { margin:10; padding: 0; outline: none; } </style> </head> <body> <FORM name="form1"> <div>Выберите курс: </div> <br> <input type="checkbox" name="course" id="c1" value="300" onClick="getCours();">pyccкий<br> <input type="checkbox" name="course" id="c2" value="200" onClick="getCours();">английский<br> <input type="checkbox" name="course" id="c3" value="100" onClick="getCours();">французский<br> <input type="checkbox" name="course" id="c4" value="150" onClick="getCours();">немецкий<br> <hr> <div>Выберите продолжительность курса (в академ.часах) : </div> <input type="checkbox" name="time" id="t1" value="10">10<br> <input type="checkbox" name="time" id="t2" value="20">20<br> <input type="checkbox" name="time" id="t3" value="30">30<br> <input type="checkbox" name="time" id="t4" value="50">50<br> <hr> <div>Выберите язык преподавания курса : </div> <input type="checkbox" name="lan" value="50" id="l1">Русский<br> <input type="checkbox" name="lan" value="100" id="l2">Английский<br> <hr> <div>Нужна ли отчетность? : </div> <input type="checkbox" name="otchet" id="ot1" value="3000">Да<br> <input type="checkbox" name="otchet" id="ot2" value="0">Нет<br> <hr> <hr> <br> <br> <div>Стоимость : </div> <input type="text" size="15" onfocus="rezult(this);" > </FORM><hr> <script language="JavaScript"> var checkboxs = document.querySelectorAll('input[type="checkbox"]'); [].forEach.call(checkboxs, function(item){ item.onclick = function(){ for (var i = 0; i < checkboxs.length; i++){ if (checkboxs[i].checked) var course=checkboxs[i].value; } for (var i = 0; i < checkboxs.length; i++){ if (checkboxs[i].checked) var time=checkboxs[i].value; } for (var i = 0; i < checkboxs.length; i++){ if (checkboxs[i].checked) var lan=checkboxs[i].value; } for (var i = 0; i < checkboxs.length; i++){ if (checkboxs[i].checked) var otchet=checkboxs[i].value; } var price = (((time * course)*lan) + otchet); //ДО ЭТОГО КОДА ВСЕ РАБОТАЕТ, Т.Е ALERT-ОМ Я ПРОВЕРЯЛ , //если выводить тут результат, то после первого выбранного чекбокса сразу отрабатывает alert ,а мне нужно в самом конце,после выбоар всех чекбоксов function rezult(course,time,lan,otchet){ alert(price); rezult(); } } }); </script> </body> </html> |
Зачем четырежды for (var i = 0; i < checkboxs.length; i++) ?
И не надо кивать на кураторов, сколь бы не именовать checkbox одним именем они все равно не станут группой зависимых переключателей. Меняйте тип кнопки. И id кнопкам совсем не нужны. |
laimas,
так я получаю каждый нажатый чекбокс из группы,а их шт |
Цитата:
|
laimas,
может гавно**код)но через alert я получаю свои нажатые чекбоксы)однако вывести результат не могу... |
Дело не в том какому сорту Г код принадлежит, а в том, что в этом нет смысла. Сама форма содержит коллекцию элементов, которую можно получить через ее свойство elements, обойдя которую ОДНИМ циклом можно получить отмеченные кнопки. А так как группы кнопок имеют разные имена, то и не сложно получить отмеченное в группе.
А вот checkbox, это точно дурость, и если кураторы ваши ею маются, то это еще не значит, что и вы должны этим заниматься, наоборот, разъясните им разницу между checkbox и radio, пора бы это уяснить. |
laimas,
понял,спасибо,буду добивать свой вариант. НО от помощи не отказался бы)) |
Пересмотрел код,решил пойти таким путем и опять тупик, уважаемые, разъясните,нуждаюсь в помощи:
Выводится только последнее число,а точнее его перемножение ,А потом сложение: хотя, я проверял через alert(a); alert(b); alert(c); alert(d);выводится первое выбранное число.Что не так <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style> * { margin:10; padding: 0; outline: none; } </style> </head> <body> <FORM name="form1"> <div>Выберите курс: </div> <br> <input type="checkbox" id="c1" value="100" >pyccкий<br> <input type="checkbox" id="c2" value="200" >английский<br> <input type="checkbox" id="c3" value="300">французский<br> <input type="checkbox" id="c4" value="400" >немецкий<br> <hr> <div>Выберите продолжительность курса (в академ.часах) : </div> <input type="checkbox" id="t1" value="200" >10<br> <input type="checkbox" id="t2" value="300" >20<br> <input type="checkbox" id="t3" value="400">30<br> <input type="checkbox" id="t4" value="350" >50<br> <hr> <div>Выберите язык преподавания курса : </div> <input type="checkbox" value="200" id="l1">Русский<br> <input type="checkbox" value="400" id="l2">Английский<br> <hr> <div>Нужна ли отчетность? : </div> <input type="checkbox" value="4000" id="ot1" >Да<br> <input type="checkbox" value="0" id="ot2 ">Нет<br> <hr> <hr> <br> <br> <div>Стоимость : </div> <input type="text" size="50" id="1" value="" onClick="grant()" ><br> </FORM> <script language="JavaScript"> function grant() { var d= document; var a; var b; var c; var d; for(i=0;i<=11;i++){ if ((d.form1.elements[i]).checked){ a=(d.form1.elements[i].value); } if ((d.form1.elements[i]).checked){ b=(d.form1.elements[i].value); } if ((d.form1.elements[i]).checked){ c=(d.form1.elements[i].value); } if ((d.form1.elements[i]).checked){ d=(d.form1.elements[i].value); } document.getElementById("1").value=(a*b*c)+d; } } </script> </body> </html> |
попробуйте заменить это:
document.getElementById("1").value=(a*b*c)+d; на это: document.getElementById("1").value=+(a*b*c)+d; И ещё id не должен начинаться с цифры |
Часовой пояс GMT +3, время: 00:18. |