Jun*_*aid 6 asp.net checkbox jquery
我正在尝试在页面上使用几个asp.net复选框,相应地禁用它们.
<asp:CheckBox ID='chkMenuItem' runat='server' CssClass='HiddenText' Text='Test' onclick='<%#String.Format("checkChild({0});", Eval("id")) %>' />
Run Code Online (Sandbox Code Playgroud)
在JavaScript上,我使用以下代码
function checkChild(id) {
for (i = 0; i < $("input[id*=hdnParentMenuItemID]").length; i++) {
if ($('input[id*=hdnParentMenuItemID]')[i].value.split(':')[0] == id) {
var childID = $('input[id*=hdnParentMenuItemID]')[i].value.split(':')[1];
if ($("#" + childID).attr("disabled"))
//$("#" + childID).attr('disabled', '');
$("#" + childID).removeAttr("disabled");
else
$("#" + childID).attr('disabled', true);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,加载页面后禁用复选框,removeAttr部分不起作用.我试图通过调试器,逻辑工作完全正常.如果在页面加载时未禁用复选框,则代码可以正常工作.我尝试用'checked'替换禁用的'属性',看看其他属性是否正常工作,并且它的工作完全正常.我试过了
$("#" + childID).attr('disabled', '');
Run Code Online (Sandbox Code Playgroud)
但它也没有用.
注意:它在FF和Chrome上运行完美但在IE中不起作用.
谢谢,
mry*_*ren 13
我<asp:CheckBox />在使用jQuery的Internet Explorer中启用了类似的问题.以下代码在FireFox中运行得非常好.
$('myCheckBox').removeAttr('disabled');
Run Code Online (Sandbox Code Playgroud)
但是,它无法在IE中正常工作.
An <asp:CheckBox />呈现为<span />带有<input />和<label />标记.禁用该复选框时,span和input标签都将使用disabled属性进行修饰.为了获得预期的行为,我习惯了以下代码:
$('myCheckBox').removeAttr('disabled');
$('myCheckBox').closest('span').removeAttr('disabled');
Run Code Online (Sandbox Code Playgroud)