Подтвердить что ты не робот

.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="" >
4b9b3361

Ответ 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>