javascript - 无法设置 disabled=false (javascript)

标签 javascript html forms

我有这个功能:

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/

相关文章:

html - <ul> 标签会自动导致表格单元格内居中对齐吗?

javascript - 提交页面时从 iframe 访问隐藏元素

javascript - 在移动设备上,localStorage 在执行其他操作几分钟后会被删除

javascript - 等待所有 jQuery ajax 调用完成(完成或拒绝)

javascript - Bootstrap + jQuery : Resizing diagram based on screen width

javascript - requestAnimationFrame 实现是递归的吗?

javascript - 单击 jquery 中的链接更改图像源

javascript - 我怎样才能以相同的形式从具有相同名称的不同选择选项中获取一个值

django - 什么时候应该使用 Form/ModelForm、FormSet/ModelFormSet?

html - 如何使用在 Google Chrome 中工作的 css 增加复选框的大小?