我希望有与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="" >
答案 0 :(得分:98)
disabled
元素被禁用(自解释),因此逻辑上不可编辑,因此:
设置禁用属性[...]也会更改可编辑属性
是一种有意和明确定义的行为。
这里真正的问题似乎是你试图通过disabled
将false
设置为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仍表示已禁用。
答案 3 :(得分:4)
禁用的属性值在实际上不被考虑..通常如果你注意到属性设置为disabled =“disabled”,那么“禁用”在这里是不必要的...因此,最好的办法是删除属性
element.removeAttribute("disabled");
你也可以做到
element.disabled=false;
答案 4 :(得分:4)
使用方法设置和删除 属性
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;
答案 5 :(得分:0)
只需更换“myselect”&#39;与你的身份
禁用 - &gt;
document.getElementById("mySelect").disabled = true;
启用 - &gt;
document.getElementById("mySelect").disabled = false;