我有这个功能:
function disableDiv(divId, action){
var divId = byId(divId);
if(action==true){
divId.style.display='none';
}
else if(action==false){
divId.style.display='block';
}
var inputs = divId.getElementsByTagName("input");
var selects = divId.getElementsByTagName("select");
var i;
for (i=0; i<inputs.length; i++){
inputs[i].disabled=action;
}
for (i=0; i<selects.length; i++){
selects[i].disabled=action;
}
}
这需要一个 divId(DIV 的 id)和一个 Action (false 或 true)并获取所有输入并在 div 内选择,并将它们的禁用属性设置为 false 或 true。
根据 Firebug,Div 内的元素一直处于禁用状态。但是一旦点击下拉列表选项,它们就应该处于事件状态......触发很好所以你知道。 我可以看到使用警告框调用此函数,它实际上设置了 disabled=false。但是元素仍然被禁用。
需要指出的是,根据 firebug,disabled 属性如下所示:
<input name="test" id="test" disabled="">
请注意只有两个双引号...它不应该说“disabled='disabled'”或“disabled=true”吗?
关于如何进一步排除故障的任何提示?
下面是我调用函数的方式:
(category=="Cars")?disableDiv("nav_sub_cars", false):disableDiv("nav_sub_cars", true);
如果您需要更多信息,请告诉我...
谢谢
最佳答案
编辑以反射(reflect)评论。
根据 W3C,您发布的代码应该是正确的。 disabled 属性是一个 bool 属性。使用 removeAttribute()
方法也可能会有帮助。
根据我的经验,您也可以使用字符串值“禁用”或“”来实现此效果。这可能会起作用,因为当浏览器遇到这些值时,这些值会被强制转换为 bool 表示形式。
关于javascript - 无法设置 disabled=false (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3557266/