.setAttribute(“deaktiviert”, falsch); ändert das bearbeitbare Attribut auf false
Lesezeit: 3 Minuten
Ghokun
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 des Textfelds auf „true“ setze, ändert es auch das bearbeitbare Attribut. Ich habe versucht, das bearbeitbare Attribut erneut auf wahr 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);
}
EIN disabled Element ist (selbsterklärend) deaktiviert und damit logischerweise nicht editierbar, also:
Setzen Sie das deaktivierte Attribut […] ändert auch das bearbeitbare Attribut
Ist ein beabsichtigtes und genau definiertes Verhalten.
Das eigentliche Problem scheint hier zu sein, dass Sie versuchen, eine Einstellung vorzunehmen disabled zu false über setAttribute() was nicht das tut, was du erwartest. ein Element ist deaktiviert, wenn die disabled-Attribut wird gesetzt, unabhängig von seinem Wert (also, disabled="true", disabled="disabled" und disabled="false" alle tun dasselbe: das Element wird deaktiviert). Sie sollten stattdessen das vollständige Attribut entfernen:
element.removeAttribute("disabled");
oder setzen Sie diese Eigenschaft direkt:
element.disabled = false;
Gute Antwort, aber im letzteren Fall sagen Sie “dieses Attribut direkt festlegen” und ich glaube, es sollte “diese Eigenschaft direkt festlegen” sein, da Sie die DOM-Eigenschaft und nicht das HTML-Attribut bearbeiten. Subtiler Unterschied, aber wichtig hier, denke ich.
– Die 111
9. Januar 2013 um 3:20 Uhr
Gibt es eine Möglichkeit, die ich verwenden kann setAttribute() genau das gleiche tun? setAttribute("disabled","true"); funktioniert nicht;
– Namenlos
18. Juli 2017 um 5:50 Uhr
Legen Sie einfach die Eigenschaft direkt fest: .
eleman.disabled = false;
Gibt es eine Möglichkeit, setAttribute () zu verwenden, um genau dasselbe zu tun? setAttribute(“deaktiviert”, “true”); funktioniert nicht
– Namenlos
18. Juli 2017 um 5:50 Uhr
@AjayAradhya – siehe akzeptierte Antwort. Das deaktiviert Das Attribut ist boolesch, sein Vorhandensein setzt seinen Wert auf wahr. Die einzige Möglichkeit, dies zu beheben, besteht darin, entweder die Eigenschaft auf false zu setzen oder das Attribut using zu entfernen Attribut entfernen.
– RobG
18. Juli 2017 um 10:30 Uhr
Methode anwenden 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", "");
}
}
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 es auf “false” setzen, bedeutet es immer noch, dass es deaktiviert ist.
der Wert des Attributs “disabled” wird eigentlich nicht berücksichtigt. Normalerweise, wenn Sie bemerkt haben, dass das Attribut auf disabled=”disabled” gesetzt ist, ist das “disabled” hier persay nicht notwendig.. daher ist es am besten, das Attribut zu entfernen.
Es gibt eine andere Methode toggleAttribute() spezifischer für diesen Anwendungsfall, wenn Sie IE11 und andere Legacy-Browser nicht berücksichtigen müssen.
element.toggleAttribute("disabled");
wechselt zwischen <input value="text" disabled /> und <input value="text" />und außerdem,
element.toggleAttribute("disabled", true);
setzt <input value="text" disabled /> explizit, egal in welchem Zustand sich das Element befand; ähnlich,
element.toggleAttribute("disabled", false);
setzt <input value="text" /> ausdrücklich.
11454800cookie-check.setAttribute(“deaktiviert”, falsch); ändert das bearbeitbare Attribut auf falseyes