【发布时间】:2010-08-24 14:04:18
【问题描述】:
我有这个功能:
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)和一个操作(false 或 true),并获取 div 内的所有输入和选择,并将其 disabled 属性设置为 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);
如果您需要更多信息,请告诉我...
谢谢
【问题讨论】:
-
是时候迁移到 jQuery 了。这些天,孩子们很流行。
-
jQuery 仅仅为了这个就太过分了。
-
确保您的操作输入是布尔值 true 或 false,而不是字符串“true”或“false”,这很可能是您的问题。
-
jQuery,为了这个?从不。
标签: javascript html forms