09.11.2015, 13:47
|
|
Кандидат Javascript-наук
|
|
Регистрация: 01.11.2012
Сообщений: 103
|
|
пробовал так:
document.querySelector('#text').value += ((time * course) + otchet);
|
|
09.11.2015, 15:13
|
|
Кандидат Javascript-наук
|
|
Регистрация: 01.11.2012
Сообщений: 103
|
|
Что не так делаю,подскажите пожалуйста:
<!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>
|
|
09.11.2015, 21:10
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Зачем четырежды for (var i = 0; i < checkboxs.length; i++) ?
И не надо кивать на кураторов, сколь бы не именовать checkbox одним именем они все равно не станут группой зависимых переключателей. Меняйте тип кнопки. И id кнопкам совсем не нужны.
Последний раз редактировалось laimas, 09.11.2015 в 21:12.
|
|
09.11.2015, 21:13
|
|
Кандидат Javascript-наук
|
|
Регистрация: 01.11.2012
Сообщений: 103
|
|
laimas,
так я получаю каждый нажатый чекбокс из группы,а их шт
|
|
09.11.2015, 21:13
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от unkind
|
так я получаю каждый нажатый чекбокс из группы,а их шт
|
Думать, студент. )
|
|
09.11.2015, 21:22
|
|
Кандидат Javascript-наук
|
|
Регистрация: 01.11.2012
Сообщений: 103
|
|
laimas,
может гавно**код)но через alert я получаю свои нажатые чекбоксы)однако вывести результат не могу...
|
|
09.11.2015, 21:34
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Дело не в том какому сорту Г код принадлежит, а в том, что в этом нет смысла. Сама форма содержит коллекцию элементов, которую можно получить через ее свойство elements, обойдя которую ОДНИМ циклом можно получить отмеченные кнопки. А так как группы кнопок имеют разные имена, то и не сложно получить отмеченное в группе.
А вот checkbox, это точно дурость, и если кураторы ваши ею маются, то это еще не значит, что и вы должны этим заниматься, наоборот, разъясните им разницу между checkbox и radio, пора бы это уяснить.
|
|
09.11.2015, 21:42
|
|
Кандидат Javascript-наук
|
|
Регистрация: 01.11.2012
Сообщений: 103
|
|
laimas,
понял,спасибо,буду добивать свой вариант.
НО от помощи не отказался бы))
Последний раз редактировалось unkind, 09.11.2015 в 22:06.
|
|
10.11.2015, 22:03
|
|
Кандидат Javascript-наук
|
|
Регистрация: 01.11.2012
Сообщений: 103
|
|
Пересмотрел код,решил пойти таким путем и опять тупик, уважаемые, разъясните,нуждаюсь в помощи:
Выводится только последнее число,а точнее его перемножение ,А потом сложение:
хотя, я проверял через
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>
Последний раз редактировалось unkind, 10.11.2015 в 22:08.
|
|
10.11.2015, 22:47
|
|
Профессор
|
|
Регистрация: 15.01.2015
Сообщений: 622
|
|
попробуйте заменить это:
document.getElementById("1").value=(a*b*c)+d;
на это:
document.getElementById("1").value=+(a*b*c)+d;
И ещё id не должен начинаться с цифры
|
|
|
|