Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Совеместить скрипт и html форму (https://javascript.ru/forum/dom-window/59375-sovemestit-skript-i-html-formu.html)

unkind 09.11.2015 13:47

пробовал так:
document.querySelector('#text').value += ((time * course) + otchet);

unkind 09.11.2015 15:13

Что не так делаю,подскажите пожалуйста:
<!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>

laimas 09.11.2015 21:10

Зачем четырежды for (var i = 0; i < checkboxs.length; i++) ?

И не надо кивать на кураторов, сколь бы не именовать checkbox одним именем они все равно не станут группой зависимых переключателей. Меняйте тип кнопки. И id кнопкам совсем не нужны.

unkind 09.11.2015 21:13

laimas,
так я получаю каждый нажатый чекбокс из группы,а их шт

laimas 09.11.2015 21:13

Цитата:

Сообщение от unkind
так я получаю каждый нажатый чекбокс из группы,а их шт

Думать, студент. )

unkind 09.11.2015 21:22

laimas,
может гавно**код)но через alert я получаю свои нажатые чекбоксы)однако вывести результат не могу...

laimas 09.11.2015 21:34

Дело не в том какому сорту Г код принадлежит, а в том, что в этом нет смысла. Сама форма содержит коллекцию элементов, которую можно получить через ее свойство elements, обойдя которую ОДНИМ циклом можно получить отмеченные кнопки. А так как группы кнопок имеют разные имена, то и не сложно получить отмеченное в группе.

А вот checkbox, это точно дурость, и если кураторы ваши ею маются, то это еще не значит, что и вы должны этим заниматься, наоборот, разъясните им разницу между checkbox и radio, пора бы это уяснить.

unkind 09.11.2015 21:42

laimas,
понял,спасибо,буду добивать свой вариант.
НО от помощи не отказался бы))

unkind 10.11.2015 22:03

Пересмотрел код,решил пойти таким путем и опять тупик, уважаемые, разъясните,нуждаюсь в помощи:
Выводится только последнее число,а точнее его перемножение ,А потом сложение:
хотя, я проверял через
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>

EmperioAf 10.11.2015 22:47

попробуйте заменить это:
document.getElementById("1").value=(a*b*c)+d;

на это:
document.getElementById("1").value=+(a*b*c)+d;


И ещё id не должен начинаться с цифры


Часовой пояс GMT +3, время: 00:18.