web-dev-qa-db-ja.com

.setAttribute( "disabled"、false);編集可能な属性をfalseに変更します

ラジオボタンに関連するテキストボックスが欲しい。したがって、各ラジオボタンは、テキストボックスを有効にし、他のボタンを無効にする必要があります。ただし、textboxのdisabled属性をtrueに設定すると、編集可能な属性も変更されます。編集可能な属性を再度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="" >
49
Ghokun

disabled要素は(自己説明的)無効であるため、論理的には編集できません。

無効な属性を設定[...]編集可能な属性も変更します

意図された明確な動作です。

ここでの本当の問題は、setAttribute()を介してdisabledfalseに設定しようとしているように思われます。 disabled- attributeが値に関係なく設定されている場合、要素は無効になります(したがって、disabled="true"disabled="disabled"、およびdisabled="false"はすべて同じことを行います。要素は無効になります) 。代わりに、完全な属性を削除する必要があります。

element.removeAttribute("disabled");

または、そのプロパティを直接設定します。

element.disabled = false;
103
oezi

プロパティを直接設定するだけです。

eleman.disabled = false;
10
RobG

代わりにこれを試してください:

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

要素を有効にするには、無効な属性を削除する必要があります。 falseに設定しても、無効になります。

http://jsfiddle.net/SRK2c/

7
Richard Dalton

使用方法 セットする そして 削除する属性

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", "");
  }
  
}
<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>
4
antelove

無効な属性値は実際には考慮されません。通常、属性がdisabled = "disabled"に設定されていることに気付いた場合、ここでの「無効」は不要です。したがって、属性を削除することをお勧めします。

element.removeAttribute("disabled");     

また、あなたはできる

element.disabled=false;
4
Baz1nga

「myselect」を自分のIDに置き換えるだけです

無効にする->

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

有効にする->

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