javascript - extensiones - .setAttribute("disabled", false); cambia el atributo editable a falso
mozilla js extension (6)
Intenta hacer esto en su lugar:
function enable(id)
{
var eleman = document.getElementById(id);
eleman.removeAttribute("disabled");
}
Para habilitar un elemento, debes eliminar el atributo deshabilitado. Establecerlo en falso todavía significa que está deshabilitado.
Quiero tener cuadros de texto relacionados con botones de radio. Por lo tanto, cada botón de radio debería habilitar su cuadro de texto y desactivar los demás. Sin embargo, cuando configuro el atributo disabled de textbox en true, también cambia el atributo editable. Intenté volver a configurar el atributo editable true pero no funcionó.
Esto fue lo que intenté:
Función JS:
function enable(id)
{
var eleman = document.getElementById(id);
eleman.setAttribute("disabled", false);
eleman.setAttribute("editable", true);
}
Elementos XUL:
<radio id="pno" label="123" onclick="enable(''ad'')" />
<textbox id="ad" editable="true" disabled="true" flex="1" emptytext="asd" onkeypress="asd(event)" tooltiptext="" >
Simplemente configure la propiedad directamente:.
eleman.disabled = false;
Usar el conjunto de métodos y eliminar el atributo
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>
el valor de los atributos deshabilitados no se considera acidentalmente ... por lo general, si ha notado que el atributo está configurado como deshabilitado = "deshabilitado", la opción "deshabilitado" no es necesario persay .. por lo tanto, lo mejor es eliminar el atributo.
element.removeAttribute("disabled");
también podrías hacer
element.disabled=false;
simplemente reemplace ''myselect'' con su identificación
deshabilitar->
document.getElementById("mySelect").disabled = true;
para habilitar->
document.getElementById("mySelect").disabled = false;
un elemento disabled
está, (autoexplicativo) deshabilitado y, por lo tanto, lógicamente no editable. asi que:
establecer el atributo deshabilitado [...] también cambia el atributo editable
tiene la intención de un comportamiento bien definido.
el verdadero problema aquí parece ser que intentas disabled
a false
través de setAttribute()
que no hace lo que estás esperando. un elemento está deshabilitado si el atributo disabled
-attribute está establecido, independientemente de su valor (por lo tanto, disabled="true"
, disabled="disabled"
y disabled="false"
todos hacen lo mismo: el elemento se desactiva). en su lugar, debes eliminar el atributo completo:
element.removeAttribute("disabled");
o establecer esa propiedad directamente:
element.disabled = false;