.setAttribute( "disabled", false); изменяет атрибут editable на false
Я хочу иметь текстовые поля, связанные с радиообменами. Поэтому каждый переключатель должен включать это текстовое поле и отключать другие. Однако, когда я устанавливаю атрибут disabled textbox на true, он также изменяет атрибут 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="" >
Ответы
Ответ 1
a disabled
элемент, (самоочевидный) отключен и, следовательно, логически не редактируется. так:
установить отключенный атрибут [...] также изменяет редактируемый атрибут
подразумевается четкое поведение.
реальная проблема здесь, похоже, заключается в том, что вы пытаетесь установить disabled
на false
через setAttribute()
, который не выполняет то, что вы ожидаете. элемент отключается, если установлен disabled
-трибут, независимо от его значения (так, disabled="true"
, disabled="disabled"
и disabled="false"
все делают то же самое: элемент отключается). вместо этого вы должны удалить полный атрибут:
element.removeAttribute("disabled");
или непосредственно установить это свойство:
element.disabled = false;
Ответ 2
Просто установите свойство напрямую:.
eleman.disabled = false;
Ответ 3
Попробуйте сделать это вместо:
function enable(id)
{
var eleman = document.getElementById(id);
eleman.removeAttribute("disabled");
}
Чтобы включить элемент, вы должны удалить отключенный атрибут. Установка его в значение false по-прежнему означает, что он отключен.
http://jsfiddle.net/SRK2c/
Ответ 4
значение отключенных атрибутов не учитывается актуально. Обычно, если вы заметили, что атрибут установлен как отключенный = "отключен", "отключенный" здесь не нужен persay.. таким образом, самое лучшее, что нужно сделать, это удалить атрибут.
element.removeAttribute("disabled");
также вы могли бы сделать
element.disabled=false;
Ответ 5
просто замените 'myselect' на ваш id
отключить →
document.getElementById("mySelect").disabled = true;
для включения →
document.getElementById("mySelect").disabled = false;
Ответ 6
Используя метод set и удалить атрибут
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>