javascript - Deshabilitar y habilitar un botón de entrada HTML
Entonces tengo un botón así:
<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>
¿Cómo puedo desactivarlo y activarlo cuando quiera?
He intentado disabled="disable", pero habilitarlo de nuevo es un problema. Intenté restablecerlo a falso, pero eso no lo habilitó.
Respuesta #1
Usando Javascript
Deshabilitar un botón HTML
document.getElementById("Button").disabled = true;Habilitando un botón HTML
document.getElementById("Button").disabled = false;Demostración Aquí
Usando jQuery
Todas las versiones de jQuery anteriores a la 1.6
Deshabilitar un botón HTML
$('#Button').attr('disabled','disabled');Habilitando un botón HTML
$('#Button').removeAttr('disabled');Demostración Aquí
Todas las versiones de jQuery posteriores a la 1.6
Deshabilitar un botón HTML
$('#Button').prop('disabled', true);Habilitando un botón HTML
$('#Button').prop('disabled', false);Demostración Aquí
P.D. Código actualizado basado en los cambios de jquery 1.6.1. Como sugerencia, siempre use los archivos jquery más recientes y el método prop().
Respuesta #2
Dado que lo estás deshabilitando en primer lugar, la forma de habilitarlo es establecer su propiedad disabled como false.
Para cambiar su propiedad disabled en Javascript, usas esto:
var btn = document.getElementById("Button");
btn.disabled = false;
Y obviamente, para desactivarlo de nuevo, usarías true en su lugar.
Dado que también etiquetaste la pregunta con jQuery, podrías usar el método .prop. Algo como:
var btn = $("#Button");
btn.prop("disabled", true); // Or `false`
Esto está en las versiones más nuevas de jQuery. La forma antigua de hacer esto es agregar o quitar un atributo así:
var btn = $("#Button");
btn.attr("disabled", "disabled");
// or
btn.removeAttr("disabled");
La mera presencia de la propiedad disabled desactiva el elemento, por lo que no se puede establecer su valor como "false". Incluso lo siguiente debería desactivar el elemento
<input type="button" value="Submit" disabled="" />
Necesitas eliminar el atributo completamente o establecer su propiedad.
Respuesta #3
Puedes hacer esto bastante fácilmente solo con JavaScript puro, no se requieren bibliotecas.
Habilitar un botón
document.getElementById("Button").disabled=false;
Deshabilitar un botón
document.getElementById("Button").disabled=true;
No se necesitan bibliotecas externas.
