Выбор выбора с помощью JavaScript - PullRequest
0 голосов
/ 10 октября 2010

У меня вопрос по выбору ящиков для выбора с помощью Javascript.Я загрузил файлы на http://www.mikevierwind.nl/javascript/risicoinventarisatie.htm Здесь вы видите таблицу с множеством вопросов и радиокнопок.На каждый вопрос есть 2 радиокнопки, да и нет.

При переходе к первому вопросу.«Диабет», который вы выбираете для радиопереключателя «я». Вы видите, что теперь появится другой вопрос.Но когда я выбираю «урожденную», тогда вопрос должен исчезнуть.Как я могу создать это с помощью Javascript?Мой код Javascript:

 var diabetes = false;
 var diabetesvraag = $("#blokken table.lichamelijkegezondheid .diabetesextra")
 var buttondiabetes = $("#blokken table.lichamelijkegezondheid .diabetesja")

 diabetesvraag.hide();
 buttondiabetes.click(function()
 {   
  if(diabetes == false)
  {
   diabetes = true;
   diabetesvraag.show();
  }

  else
  {
   diabetes = false;
   diabetesvraag.hide();
  }
  return false;
 }); 

Ответы [ 2 ]

1 голос
/ 10 октября 2010

Ну, во-первых, вам нужно исправить свой HTML. Каждый набор радиокнопок «да» и «нет» необходимо сгруппировать вместе с правильным атрибутом name. Это скажет браузеру, что только один из каждого набора «да» и «нет» можно выбрать. Однако name должно быть уникальным для каждого условия. Примерно так должно поступить:

<span class="radio">
    <input type="radio" name="condition_selection" value="yes" id="yes" />
    <label for="yes">Yes</label>
    <input type="radio" name="condition_selection" value="no" id="no" />
    <label for="no">No</label></span>

Вы также должны использовать атрибут for для элемента label в целях доступности и попытаться использовать что-то другое, кроме таблиц, для разметки этой формы, но это не относится к данному вопросу.


Далее, вы можете попробовать упростить код Javascript, используя обработчик событий change для проверки обоих состояний, примерно так:

$('.add_qns').hide();

$('.radio :radio').change(function(){
    if(this.value === 'yes'){
        $(this).parent().next('.add_qns').show();
    } else {
        $(this).parent().next('.add_qns').hide();
    }
});

Вы можете изменить селектор $(this).parent().next('.add_qns') в соответствии с вашей разметкой. Смотрите: http://www.jsfiddle.net/yijiang/BcAwH/ для живой демонстрации.

0 голосов
/ 10 октября 2010

Также добавьте class="diabetesja" к нужным кнопкам, так как ваш код назначает событие нажатия только для радиокнопок .diabetesja.

В качестве альтернативы вы можете добавить класс class="diabetesnee" к вашим нужным переключателям и изменить

var buttondiabetes = $("#blokken table.lichamelijkegezondheid .diabetesja")

до

var buttondiabetes = $("#blokken table.lichamelijkegezondheid .diabetesja, #blokken table.lichamelijkegezondheid .diabetesnee")

Дело в том, что обеим радиокнопкам (Ja и Nee) нужно иметь обработчик щелчков ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...