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

Gho*_*kun 52 javascript firefox xul firefox-addon

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

这是我试过的:

JS功能:

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

XUL元素:

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

oez*_*ezi 111

disabled元件是,(自我解释)禁用,从而在逻辑上不可编辑的,这样:

设置disabled属性[...]也会更改editable属性

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

这里真正的问题似乎是你试图设置disabledfalse通过setAttribute()哪个不做你期望的.如果设置disabled-attribute,则禁用元素,与其值无关(因此disabled="true",disabled="disabled"并且disabled="false"所有元素都相同:元素被禁用).你应该删除完整的属性:

element.removeAttribute("disabled");
Run Code Online (Sandbox Code Playgroud)

或直接设置该属性:

element.disabled = false;
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案,但在后一种情况下,你说"直接设置该属性",我相信它应该"直接设置该属性",因为你正在编辑DOM属性而不是HTML属性.微妙的区别,但我认为这很重要. (2认同)

Rob*_*obG 10

直接设置属性:.

eleman.disabled = false;
Run Code Online (Sandbox Code Playgroud)


Ric*_*ton 7

尝试这样做:

function enable(id)
{
    var eleman = document.getElementById(id);
    eleman.removeAttribute("disabled");        
}
Run Code Online (Sandbox Code Playgroud)

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

http://jsfiddle.net/SRK2c/


Baz*_*nga 5

实际上不考虑禁用的属性值..通常如果您注意到属性设置为禁用=“禁用”,则不必说这里的“禁用”..因此最好的办法是删除该属性。

element.removeAttribute("disabled");     
Run Code Online (Sandbox Code Playgroud)

你也可以做

element.disabled=false;
Run Code Online (Sandbox Code Playgroud)


ant*_*ove 5

使用方法设置删除 属性

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", "");
  }
  
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)