2012-02-22 2 views
2

Я пытаюсь добавить выбор в Нет предпочтений в моем списке флажок и то, что я хотел бы произойти следующим образом:Управление флажков в HTML

  1. Все флажки, которые выбираются стали бесконтрольно, когда «Без предпочтений ".

  2. Если выбрано «Нет предпочтений», а другой флажок установлен, то «Нет предпочтения» становится не выбранным.

Вот то, что я до сих пор: http://jsfiddle.net/VuS5R/1/

Спасибо за вашу помощь.

+0

Я думаю, что вы не можете использовать номер в качестве идентификатора, а идентификатор должен быть стоимость создания эксклюзивной. – jcubic

+1

Просто нашел [это] (http://www.shiningstar.net/articles/articles/javascript/checkboxes.asp). Это похоже на то, что вы ищете, с кнопками вместо флажков. Сделайте имя «Нет предпочтения» одним, а другие - другим.Устранение остальных просто потребует их имени, а снятие флажка «Нет предпочтения» потребует его имени. – chris

ответ

1

Элегантное решение от jQuery. «нет предпочтений» не имеет класс «Nop», другие «прив»:

$(document).ready(function() 
{ 
    $(".Nop").click(function() 
    { 
     if ($(this).is(":checked")) 
     { 
      $(".pref").attr("checked", false);  
     } 
    }); 
    $(".pref").click(function() 
    { 
      if ($(this).is(":checked")) 
      { 
       $(".Nop").attr("checked", false);  
      } 
    }); 
}); 
+0

Спасибо! JQuery всегда работает для меня. – Silas

1
  1. Во-первых, вы должны дать каждому CheckBox в уникальный ID (в настоящее время все они имеют ID = 1).
  2. Тогда вы бы изменить «Нет предпочтения» флажок декларацию к этому:

    входного типа = идентификатор = имя «Флажок» «0» = название = «Нет предпочтения» значение «BT» = «0» проверено = "проверено" OnClick = "возвращение NoPreference_ClientClick()"

  3. Вы добавите следующий JavaScript на странице:

    функции NoPreference_ClientClick() { если ($ получим ("0") .checked) { $ get ("1"). Checked = $ get ("2"). Checked = $ get ("3"). Checked = $ get ("4"). Checked = $ get ("5 ") .checked = false; } еще { $ получить ("1"). Проверено = $ Get ("2"). Проверено = $ Get ("3"). Проверено = $ Get ("4"). Проверено = $ get ("5"). Checked = true; } return false; }

... Я надеюсь, что вы получите образец!

+0

Я как бы понял, все еще пытаюсь понять это так. – Silas

2

Мое предложение было бы поместить удостоверение личности на элемент ul. Затем вы можете использовать getElementByID и getElementsByTagName, чтобы идентифицировать эти флажки. Поскольку флажок «Нет предпочтений» является первым, привяжите событие к его клику, чтобы снять флажки с флажками, если он установлен.

var checkboxes = document.getElementById('list').getElementsByTagName('input'); 
checkboxes[0].onclick = function(){ 
    if(checkboxes[0].checked){ 
     for(var i = 1; i < checkboxes.length; i++){ 
      checkboxes[i].checked = false; 
     } 
    } 
} 

Here is the jsfiddle.

Смежные вопросы