.setAttribute(“disabled”,false);将editable属性更改为false

时间:2011-09-23 09:02:49

标签: javascript firefox firefox-addon xul

我希望有与radiobuttons相关的文本框。因此,每个单选按钮应启用它的文本框并禁用其他按钮。但是,当我将textbox的disabled属性设置为true时,它也会更改editable属性。我尝试再次将editable属性设置为true,但它不起作用。

这就是我的尝试:

JS功能:

function enable(id)
{
    var eleman = document.getElementById(id);
    eleman.setAttribute("disabled", false);
    eleman.setAttribute("editable", true);
}

XUL元素:

<radio id="pno" label="123" onclick="enable('ad')" />
<textbox id="ad" editable="true"  disabled="true" flex="1" emptytext="asd" onkeypress="asd(event)" tooltiptext="" >

6 个答案:

答案 0 :(得分:98)

disabled元素被禁用(自解释),因此逻辑上不可编辑,因此:

  

设置禁用属性[...]也会更改可编辑属性

是一种有意和明确定义的行为。

这里真正的问题似乎是你试图通过disabledfalse设置为setAttribute(),但这并不符合您的期望。如果设置了disabled - 属性,则会禁用某个元素,与其值无关(因此,disabled="true"disabled="disabled"disabled="false"都会执行相同操作:元素被禁用) 。你应该删除完整的属性:

element.removeAttribute("disabled");

或直接设置该属性:

element.disabled = false;

答案 1 :(得分:10)

直接设置属性:。

eleman.disabled = false;

答案 2 :(得分:6)

尝试这样做:

function enable(id)
{
    var eleman = document.getElementById(id);
    eleman.removeAttribute("disabled");        
}

要启用元素,您必须删除已禁用的属性。将其设置为false仍表示已禁用。

http://jsfiddle.net/SRK2c/

答案 3 :(得分:4)

禁用的属性值在实际上不被考虑..通常如果你注意到属性设置为disabled =“disabled”,那么“禁用”在这里是不必要的...因此,最好的办法是删除属性

element.removeAttribute("disabled");     

你也可以做到

element.disabled=false;

答案 4 :(得分:4)

使用方法设置删除 属性

&#13;
&#13;
function radioButton(o) {

  var text = document.querySelector("textarea");

  if (o.value == "on") {
    text.removeAttribute("disabled", "");
    text.setAttribute("enabled", "");
  } else {
    text.removeAttribute("enabled", "");
    text.setAttribute("disabled", "");
  }
  
}
&#13;
<input type="radio" name="radioButton" value="on" onclick = "radioButton(this)" />Enable
<input type="radio" name="radioButton" value="off" onclick = "radioButton(this)" />Disabled<hr/>

<textarea disabled ></textarea>
&#13;
&#13;
&#13;

答案 5 :(得分:0)

只需更换“myselect”&#39;与你的身份

禁用 - &gt;

document.getElementById("mySelect").disabled = true;  

启用 - &gt;

document.getElementById("mySelect").disabled = false;