ラジオボタンに関連するテキストボックスが欲しい。したがって、各ラジオボタンは、テキストボックスを有効にし、他のボタンを無効にする必要があります。ただし、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="" >
disabled
要素は(自己説明的)無効であるため、論理的には編集できません。
無効な属性を設定[...]編集可能な属性も変更します
意図された明確な動作です。
ここでの本当の問題は、setAttribute()
を介してdisabled
をfalse
に設定しようとしているように思われます。 disabled
- attributeが値に関係なく設定されている場合、要素は無効になります(したがって、disabled="true"
、disabled="disabled"
、およびdisabled="false"
はすべて同じことを行います。要素は無効になります) 。代わりに、完全な属性を削除する必要があります。
element.removeAttribute("disabled");
または、そのプロパティを直接設定します。
element.disabled = false;
プロパティを直接設定するだけです。
eleman.disabled = false;
代わりにこれを試してください:
function enable(id)
{
var eleman = document.getElementById(id);
eleman.removeAttribute("disabled");
}
要素を有効にするには、無効な属性を削除する必要があります。 falseに設定しても、無効になります。
使用方法 セットする そして 削除する属性
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>
無効な属性値は実際には考慮されません。通常、属性がdisabled = "disabled"に設定されていることに気付いた場合、ここでの「無効」は不要です。したがって、属性を削除することをお勧めします。
element.removeAttribute("disabled");
また、あなたはできる
element.disabled=false;
「myselect」を自分のIDに置き換えるだけです
無効にする->
document.getElementById("mySelect").disabled = true;
有効にする->
document.getElementById("mySelect").disabled = false;