Javascript 复选框启用/禁用不在IE中工作
我试图在选中/取消选中另一个复选框“cb1”时启用/禁用复选框“cb1Sub”Javascript 复选框启用/禁用不在IE中工作,javascript,asp.net,Javascript,Asp.net,我试图在选中/取消选中另一个复选框“cb1”时启用/禁用复选框“cb1Sub” <table> <tr> <td> <asp:CheckBox ID="cb1" runat="server" onchange="checkedCB1(this);" /> </td> <td> <asp:CheckBox ID="cb1Sub" runat="server" Enabled="false" /&
<table>
<tr>
<td>
<asp:CheckBox ID="cb1" runat="server" onchange="checkedCB1(this);" />
</td>
<td>
<asp:CheckBox ID="cb1Sub" runat="server" Enabled="false" />
</td>
</tr>
</table>
function checkedCB1(elm) {
var elmId = $(elm).find("input").attr('id');
var elmChk = $(elm).find("input").attr('checked');
var elmSubId = elmId + "Sub";
if (elmChk == "checked") {
document.getElementById(elmSubId).disabled = false;
} else {
document.getElementById(elmSubId).disabled = true;
}
}
功能检查CB1(elm){
var elmId=$(elm.find(“input”).attr(“id”);
var elmChk=$(elm.find(“input”).attr(“checked”);
var elmSubId=elmId+“Sub”;
如果(elmChk==“选中”){
document.getElementById(elmSubId).disabled=false;
}否则{
document.getElementById(elmSubId).disabled=true;
}
}
这适用于firefox,但不适用于IE
我想当我启用复选框时,它的范围仍然被禁用
从firebug,我看到了:
<span disabled="disabled">
<input type="checkbox" name="cb1Sub" id="cb1Sub">
</span>
这不是一个真正的答案,更多的是对一些低效代码的回应
var elmId = $(elm).find("input").attr('id');
效率更高,因为:
var elmId = elm.id;
checked属性是布尔值,它为true或false,因此
if (elmChk == "checked") {
应该是:
if (elmChk) {
无论如何,假设您希望在选中cb1时启用cb1Sub,则:
function checkedCB1(elm) {
document.getElementById(elm.id + "Sub").disabled = !elm.checked;
}
尝试.prop()
而不是.attr()
$(elm)。查找(“输入”)
<代码>元素
本身就是输入
问题不在于“elmChk”。如果我使用attr,elmChk的值将被“检查”。如果我使用道具,elmChk将为真/假。
function checkedCB1(elm) {
document.getElementById(elm.id + "Sub").disabled = !elm.checked;
}