控制HTML中的复选框

时间:2012-02-22 23:01:16

标签: javascript html checkbox

我正在尝试在我的复选框列表中添加No Preference选项,我想要发生的事情如下:

  1. 选择“无偏好”时,所有选中的复选框都将取消选中。

  2. 如果选择“No Preference”并选择了另一个复选框,则“No Prefernece”将被取消选择。

  3. 以下是我目前的情况:http://jsfiddle.net/VuS5R/1/

    感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

我的建议是在ul元素上添加ID。然后,您可以使用getElementByIDgetElementsByTagName来标识复选框。由于“No preferences”复选框是第一个,因此在其单击时绑定一个事件以取消选中所有复选框(如果已选中)。

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

答案 1 :(得分:1)

  1. 首先,您必须为每个复选框指定一个唯一 ID(目前它们都有ID = 1)。
  2. 然后,您可以将“No Preference”复选框声明更改为:

    input type =“checkbox”id =“0”name =“BT”title =“No Preference”value =“0”checked =“checked” onclick =“return NoPreference_ClientClick()”

  3. 您将在页面中添加以下JavaScript:

    function NoPreference_ClientClick() {    if($ get(“0”)。已选中)    {       $ get(“1”)。checked =       $ get(“2”)。checked =       $ get(“3”)。checked =       $ get(“4”)。checked =       $ get(“5”)。checked = false;    }    其他    {       $ get(“1”)。checked =       $ get(“2”)。checked =       $ get(“3”)。checked =       $ get(“4”)。checked =       $ get(“5”)。checked = true;    }    返回false; }

  4. ......我希望你能得到这种模式!

答案 2 :(得分:1)

来自jQuery的优雅解决方案。 “无偏好”有“Nop”类,其他有“pref”:

$(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);      
          }
     });
});