jQuery: volver a habilitar los botones de entrada deshabilitados después de ejecutar ‘success:’

Tengo el siguiente código jQuery en el lugar para deshabilitar algunos botones de formulario si se cumple una condición especificada. Se llama a un archivo PHP para que coincida con la entrada del usuario a una búsqueda en la base de datos. Si la entrada coincide con la búsqueda, los botones están deshabilitados y aparece un mensaje (uinError). Aquí está el jQuery:

$(function() { $('input[id="empUIN"]').keyup(function(event) { var uin = $('#empUIN').val(); $.ajax( { type: 'POST', url: 'uinlookup.php', data: { term: uin }, success: function(data) { $('#uinError').html(data); $('#class1Buttons :input').attr('disabled', true); } }); //End ajax event.preventDefault(); }); }); //End function 

Esto funciona si hay una coincidencia, pero necesito volver a habilitar los botones si el usuario proporciona una entrada que NO desencadena una coincidencia (es decir, si retrocede sobre la entrada y escribe un nuevo número). En este momento, los botones permanecen desactivados sin importar la entrada en empUIN.

Necesitas usar .prop() :

 $('#class1Buttons :input').prop('disabled', true); //true = disabled, false = enabled. Not sure what you want 

En tu caso, eso debería funcionar:

 $('#class1Buttons :input').prop('disabled', data); 
  1. Solicitud de devolución fallida en PHP (ejemplo de estado 500).

     header('HTTP/1.1 500 Internal Server Booboo'); header('Content-Type: application/json; charset=UTF-8'); die(json_encode(array('error' => true))); // some optional data returned 
  2. Agregue una función de error a su llamada de jQuery.

     $(function() { $('input[id="empUIN"]').keyup(function(event) { var uin = $('#empUIN').val(); $.ajax( { type: 'POST', url: 'uinlookup.php', data: { term: uin }, success: function(data) { $('#uinError').html(data); $('#class1Buttons :input').attr('disabled', true); }, error: function() { // enable button $('#class1Buttons :input').attr('disabled', false); }, }); //End ajax event.preventDefault(); }); }); //End function 

Puede leer más sobre jQuery.ajax () aquí .

Puede usar $("#class1Buttons :input").removeAttr('disabled') para eliminar el atributo.