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属性
是一种有意和明确定义的行为.
这里真正的问题似乎是你试图设置disabled为false通过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)
尝试这样做:
function enable(id)
{
var eleman = document.getElementById(id);
eleman.removeAttribute("disabled");
}
Run Code Online (Sandbox Code Playgroud)
要启用元素,您必须删除disabled属性.将其设置为false仍表示已禁用.
实际上不考虑禁用的属性值..通常如果您注意到属性设置为禁用=“禁用”,则不必说这里的“禁用”..因此最好的办法是删除该属性。
element.removeAttribute("disabled");
Run Code Online (Sandbox Code Playgroud)
你也可以做
element.disabled=false;
Run Code Online (Sandbox Code Playgroud)
使用方法设置和删除 属性
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)
| 归档时间: |
|
| 查看次数: |
188545 次 |
| 最近记录: |