这个JavaScript代码有什么问题?

时间:2011-03-25 00:52:22

标签: javascript web

我有两个复选框名称check1和check2。如果检查另一个,我想要禁用其中任何一个。这就是我所做的:

var male = document.getElementById("check1");
var female = document.getElementById("check2");

male.disabled = (female.checked == true) ? true : false;
female.disabled = (male.checked == true) ? true : false;

根本不起作用。语法是否正确。我做错了什么?

4 个答案:

答案 0 :(得分:3)

您需要onchange事件,您的代码也可以整理。

var male = document.getElementById("check1"),
    female = document.getElementById("check2");

male.onchange = function() {
    female.disabled = male.checked;
};

female.onchange = function() {
    male.disabled = female.checked;
};

jsFiddle

另外,你不应该使用无线电输入吗?

答案 1 :(得分:0)

disabled根本不应设置为禁用AFAIK,任何值都是“truthy”

执行.removeAttribute('disabled')以禁用它。

答案 2 :(得分:0)

单击一个时,您需要更改另一个复选框的状态,例如。男性改变了 - 改变女性,反之亦然。

function maleOnClick(){
    female.checked= !this.checked;
}
function femaleOnClick(){
    male.checked= !this.checked;
}

无论如何为什么不使用type="radio"

答案 3 :(得分:0)

尝试:

 male.setAttribute('disabled', 'disabled'); //set
 male.setAttribute('disabled', ''); //clear

所以:

male.setAttribute = (female.checked == true) ? 'disabled': '';