Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка выбора только 2 ответов из 4 (https://javascript.ru/forum/misc/6941-proverka-vybora-tolko-2-otvetov-iz-4-a.html)

demon166 06.01.2010 23:43

Проверка выбора только 2 ответов из 4
 
Переведите с греческого языка слово “психология”.

<input type=checkbox name=rb1 value="1" >Наука о поведении.<br>
<input type=checkbox name=rb1 value="0" >Наука о сознании<br>
<input type=checkbox name=rb1 value="1 >Наука о душе.<br>
<input type=checkbox name=rb1 value="0" >Наука об объективных закономерностях развития психики.<br>


Вот и нужно чтоб считал баллы если нажаты только 2 верных варианта ответа???
Помогите пожалуйста.

Gvozd 06.01.2010 23:52

Поиск элементов в DOM
у элемента <input type="checkbox" /> есть свойство checked, которое собственно говоря означает выбран ли конкретный checkbox

demon166 07.01.2010 00:05

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

PeaceCoder 07.01.2010 00:15

Цитата:

Сообщение от demon166
можно все варианты ответов нажать и все равно будет правильно.

изначально код построили неправильно.
<input type=checkbox name=rb1 value="0" >Наука о поведении.<br>
<input type=checkbox name=rb1 value="2" >Наука о сознании<br>
<input type=checkbox name=rb1 value="4" >Наука о душе.<br>
<input type=checkbox name=rb1 value="8" >Наука об объективных закономерностях развития психики.<br>

пройдясь по этим элементам и сумируя value будет уникальное число. Др. словами используйте степенные числа

Gvozd 07.01.2010 00:19

Цитата:

Сообщение от PeaceCoder
Др. словами используйте простые числа

а чем степени двойки не угодили?
классика все же
и также для любой комбинации чекбоксов выдаст свое уникальное число

PeaceCoder 07.01.2010 00:20

Цитата:

Сообщение от Gvozd
а чем степени двойки не угодили?

пост поправил. т.к. сумма простых чисел тоже может дать одно из простых.

demon166 07.01.2010 01:03

Я честно пытался но у меня не чего не выходит. Как проверить.
<form charset="windows-1251" name=L>
    <input type=hidden name=l1 value="0"><!--Это минимальные значения-->
    <input type=hidden name=l2 value="0">
    <input type=hidden name=l3 value="0">
    <input type=hidden name=l4 value="0">
</form>

<form charset="windows-1251" name=H action="" method=post>
    <input type=hidden name=h1 value="0"><!--Это максимальные значения поставил только пок 1 чтоб проверить что работает но не чего не работает-->
    <input type=hidden name=h2 value="0">
    <input type=hidden name=h3 value="0">
    <input type=hidden name=h4 value="1">
</form>

<form charset="windows-1251" name=D action="" method=post>
      <input type=hidden name=tDtxt1 value="Плохо 2">
      <input type=hidden name=tDtxt2 value="Удовлетвор 3">
      <input type=hidden name=tDtxt3 value="ХОРОШО 4">
      <input type=hidden name=tDtxt4 value="Отлично 5">
  </form>

<script>
<!--

function makeDiagnosis() {

  tQcnt = 16;
  tDcnt = 4;
 
  summa = 0;
    for( j=0; j<document.Q.rb1.length;  j++ ) { if( document.Q.rb1[j]. checked) {summa += eval(document.Q.rb1[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>

Это вариант когда только один правльный ответ я его делал не через checkbox а через radio.


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