我在子页面中使用asp.net gridview控件。网格有两个相邻的复选框列,第二列中的框在启动时禁用。当用户检查第一列中的行中的框时,相邻的复选框将变为启用状态。我的代码在Chrome和FoxFire中工作得很好但在IE 10或11中没有。为了检查我的语法,我添加了一个替代响应,相邻的复选框被点击而不是启用。这在IE中有效。因此,似乎IE能够识别并更改“已检查”属性,但不能识别“已禁用”属性。我尝试用“attr”代替“prop”但得到了相同的结果。当我将“click”事件替换为“change”事件时,也会得到相同的结果。 IE浏览器有解决方法吗?谢谢你的帮助。
Ken McLean
<script type="text/javascript">
$(document).ready(function() {
var chx = $('input[type="checkbox"]');
chx.change(function() {
var i = chx.index(this);
if (this.id.endsWith("chkCourse")) {
if ($(this).is(":checked")) {
//$(chx[i + 1]).prop("checked", true); this works in IE
$(chx[i + 1]).prop( "disabled", false ); // this does not
}
else {
//$(chx[i + 1]).prop("checked", false); this works in IE
$(chx[i + 1]).prop( "disabled", true ); // this does not
};
};
});
});
</script>
答案 0 :(得分:1)
我在StackOverFlow的其他地方找到了解决我问题的方法。我使用的是ASP.Net Checkboxes。这是解决方案:
An呈现为带有a和标记。禁用该复选框时,span和input标签都将使用disabled属性进行修饰。为了获得预期的行为,我习惯了以下代码:
$(&#39; myCheckBox&#39)。removeAttr(&#39;禁用&#39); $(&#39; myCheckBox&#39)。最近的(&#39;跨度&#39)。removeAttr(&#39;禁用&#39);