复选框启用/禁用在IE中不起作用
Checkbox enable/disable not working in IE
当另一个复选框"cb1"被选中/取消选中时,我正试图启用/禁用一个复选复选框"cb1Sub"。
<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;
}
}
这在firefox中有效,但在IE中无效。
我认为当我启用复选框时,它的跨度仍然是禁用的。
从firebug,我看到了这个:
<span disabled="disabled">
<input type="checkbox" name="cb1Sub" id="cb1Sub">
</span>
function checkedCB1(elm) {
var elmId = $(elm).find("input").attr('id');
//use property instead of attr
**var elmChk = $(elm).find("input").prop('checked');**
var elmSubId = elmId + "Sub";
if (elmChk == "checked") {
document.getElementById(elmSubId).disabled = false;
} else {
document.getElementById(elmSubId).disabled = true;
}
}
这不是一个真正的答案,更多的是对一些低效代码的回应。
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;
}
相关文章:
- window.opener.document在ie中不起作用
- 为什么Telerik cdn在IE中不起作用
- JQuery脚本在IE中不起作用
- 默认光标在IE和Mozilla中不起作用
- Asp自定义验证器在IE-11中不起作用
- knockoutjsforeach在IE 9中不起作用
- 谷歌分析在IE中不起作用
- javascript中的SVG转换在IE 11中不起作用
- 用于播放背景音乐的嵌入式flash播放器在IE浏览器中不起作用
- 在IE中切换javascript不起作用的复选框
- JQuery日期选择器在IE 7上不起作用
- HTML表单在IE中不起作用
- Javascript style.background在IE中不起作用
- 对<asp:IE 10的TextBox;不起作用
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- SPA异步调用在IE 11中不起作用
- 脚本在IE 9中不起作用
- ng-单击在IE中不起作用的选项选择Angularjs
- JQuery 双击侦听器在选择 - IE 不起作用
- 脸书登录IE不起作用