it-swarm.com.de

.setAttribute ("disabled", false); ändert das bearbeitbare Attribut in false

Ich möchte Textfelder haben, die sich auf Radiobuttons beziehen. Daher sollte jedes Optionsfeld sein Textfeld aktivieren und die anderen deaktivieren. Wenn ich jedoch das deaktivierte Attribut von Textfeld auf "true" setze, wird auch das bearbeitbare Attribut geändert. Ich habe versucht, das bearbeitbare Attribut erneut auf true zu setzen, aber es hat nicht funktioniert.

Das habe ich versucht:

JS-Funktion:

function enable(id)
{
    var eleman = document.getElementById(id);
    eleman.setAttribute("disabled", false);
    eleman.setAttribute("editable", true);
}

XUL-Elemente:

<radio id="pno" label="123" onclick="enable('ad')" />
<textbox id="ad" editable="true"  disabled="true" flex="1" emptytext="asd" onkeypress="asd(event)" tooltiptext="" >
39
Ghokun

Ein disabled -Element ist (selbsterklärend) deaktiviert und dadurch logisch nicht bearbeitbar.

das deaktivierte Attribut setzen [...] ändert auch das bearbeitbare Attribut

Ist ein beabsichtigtes und genau definiertes Verhalten.

Das eigentliche Problem scheint hier zu sein, dass Sie versuchen, disabled über setAttribute() auf false zu setzen, was nicht das tut, was Sie erwarten. Ein Element ist deaktiviert, wenn das Attribut disabled unabhängig von seinem Wert gesetzt ist (also disabled="true", disabled="disabled" und disabled="false" alle dasselbe: Das Element wird deaktiviert). Sie sollten stattdessen das komplette Attribut entfernen:

element.removeAttribute("disabled");

oder setzen Sie diese Eigenschaft direkt:

element.disabled = false;
86
oezi

Legen Sie einfach die Eigenschaft direkt fest:. 

eleman.disabled = false;
9
RobG

Versuchen Sie es stattdessen:

function enable(id)
{
    var eleman = document.getElementById(id);
    eleman.removeAttribute("disabled");        
}

Um ein Element zu aktivieren, müssen Sie das deaktivierte Attribut entfernen. Wenn Sie den Wert auf "false" setzen, ist er deaktiviert.

http://jsfiddle.net/SRK2c/

6
Richard Dalton

der Wert der deaktivierten Attribute wird eigentlich nicht berücksichtigt. Normalerweise, wenn Sie festgestellt haben, dass das Attribut deaktiviert ist = "disabled" "Deaktiviert" ist hier nicht erforderlich. Persay. Daher ist es das Beste, das Attribut zu entfernen.

element.removeAttribute("disabled");     

du könntest es auch tun 

element.disabled=false;
4
Baz1nga

Methode verwenden einstellen und löschenattribut

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>

3
antelove

ersetzen Sie einfach "myselect" durch Ihre ID

deaktivieren->

document.getElementById("mySelect").disabled = true;  

aktivieren->

document.getElementById("mySelect").disabled = false; 
0
user7652403