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)

laimas 11.11.2015 12:13

Цитата:

Сообщение от unkind
а дальше то что?

А как вы думаете?

Кнопки radio организованные в группы в зависимых переключателей служат для выбора одного из многих. Если в каждой группе будет установлена кнопка по умолчанию, то гарантировано проходом одного цикла можно получить выбранные кнопки в каждой группе, даже имя группы проверять не потребуется. Проверять имя группы потребуется если не определено значение по умолчанию в группах.

А теперь пораскиньте извилинами - что будет при checkbox? Вы хотя бы моделировали ситуации, чтобы видеть, что тулите эти checkbox на протяжении уже 4 страницы темы, не отдавая себе отчета в том, что расставляете для себя грабли.

unkind 11.11.2015 12:18

laimas,
всем спасибо!
Буду искать ответ дальше.

EmperioAf 11.11.2015 12:20

Цитата:

Сообщение от laimas
грабли

извините за оффтоп, но напомнило:
На днях проходил мимо дома где лет 12 назад последний раз был. И там всё также написано:
"чему бы грабли бы не учили, сердце верит в чудеса".

Задача то пустяковая: пройтись по элементам формы и занести значения этих элементов в переменные...

laimas 11.11.2015 12:28

Цитата:

Сообщение от EmperioAf
Задача то пустяковая: пройтись по элементам формы

Задача то пустяковая, но неподходящие для нее элементы выбраны, и по аналогии с домом - с легкой душой хождение по кругу его, не понимая, что в любое время можно получить кирпичом сверху. )

unkind 11.11.2015 14:33

EmperioAf,
пройтись по элементам формы и занести значения этих элементов в переменные
а не могли бы вы пояснить как в переменные правильно сохранить?
В данном скрипте я получаю все выделенные радио, а как их грамотно обработать?
function grant()
  { 

for(i=0;i<=12;i++){
  if ((document.form1.elements[i]).checked){
    a =(document.form1.elements[i].value);
alert(a);
	
	}
	
}
 
}

EmperioAf 11.11.2015 15:31

Я давно перестал понимать что вы хотите получить. Поэтому вот вам пример для размышлений. Без оформления разумеется.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>ГГ</title>
<style>

* {
  margin:0;
  padding: 0;
  outline: none;
}

input[type="button"] {
  display: block;
}

p {
  margin-top: 30px;
}

</style>
</head>
<body>
<form action="" name="forma">
  <p>Выберите первое:</p>
  <label for=""><input type="radio" class="a" name="a" value="10">10</label>
  <label for=""><input type="radio" class="a" name="a" value="20">20</label>
  <label for=""><input type="radio" class="a" name="a" value="30">30</label>
  <p>Выберите второе:</p>
  <label for=""><input type="radio" class="b" name="b" value="40">40</label>
  <label for=""><input type="radio" class="b" name="b" value="50">50</label>
  <label for=""><input type="radio" class="b" name="b" value="60">60</label>
  <p>Нужна отчётность?</p>
  <label for=""><input type="radio" class="c" name="c" value="Yes">Да</label>
  <label for=""><input type="radio" class="c" name="c"value="No">Нет</label>
  <label for=""><input type="radio" class="c" name="c" value="Maybe">Наверное</label>
  <p>Результат: </p>
  <input type="text" id="result">
  <input type="button" value="Посчитать" id="button">
</form>

  <script>
var d = document;
button.onclick = function(){
  if (d.forma.querySelector(".a:checked"))
    var a = d.forma.querySelector(".a:checked").value;
  else {
    alert('Заполнены не все поля');
    return;
  }

  if (d.forma.querySelector(".b:checked"))
    var b = d.forma.querySelector(".b:checked").value;
  else {
    alert('Заполнены не все поля');
    return;
  } 

  if (d.forma.querySelector(".c:checked"))
    var c = d.forma.querySelector(".c:checked").value;
  else {
    alert('Заполнены не все поля');
    return;
  }
  
  if (c == "Yes"){
    result.value = a*b*2;
  }

  if (c == "No") {
    result.value = a*b;
  }

  if (c == "Maybe") {
    alert('Ответ неверный. Попробуйте снова');
  }
  
}
  </script>
</body>
</html>

unkind 11.11.2015 16:00

EmperioAf,
спасибо!Ваш способ разобрал и еще свой сделал и все работает)ну вот так вот я учу js ))

EmperioAf 11.11.2015 16:37

Цитата:

Сообщение от unkind
ну вот так вот я учу js

Советую сразу гуглить на английском. Так будет много быстрее чем создавать топики на форуме :)


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