Búsqueda de sitios web

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.

Artículos relacionados