我正在尝试在我的复选框列表中添加No Preference选项,我想要发生的事情如下:
选择“无偏好”时,所有选中的复选框都将取消选中。
如果选择“No Preference”并选择了另一个复选框,则“No Prefernece”将被取消选择。
以下是我目前的情况:http://jsfiddle.net/VuS5R/1/
感谢您的帮助。
答案 0 :(得分:2)
我的建议是在ul
元素上添加ID。然后,您可以使用getElementByID
和getElementsByTagName
来标识复选框。由于“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;
}
}
}
答案 1 :(得分:1)
然后,您可以将“No Preference”复选框声明更改为:
input type =“checkbox”id =“0”name =“BT”title =“No Preference”value =“0”checked =“checked” onclick =“return NoPreference_ClientClick()”
您将在页面中添加以下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; }
......我希望你能得到这种模式!
答案 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);
}
});
});