jQuery:运行’success:’后重新启用禁用的输入按钮

如果满足指定的条件,我有以下jQuery代码来禁用某些表单按钮。 调用PHP文件以将用户的输入与数据库查找匹配。 如果输入与查找匹配,则禁用按钮并显示消息(uinError)。 这是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 

如果存在匹配,则此方法有效,但如果用户提供不触发匹配的输入(即,如果他在输入上退格并键入新数字),则需要重新启用按钮。 现在,无论empUIN中的输入如何,按钮都会保持禁用状态。

你需要使用.prop()

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

在你的情况下,这应该工作:

 $('#class1Buttons :input').prop('disabled', data); 
  1. 在PHP中返回失败的请求(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. 在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 

您可以在此处阅读有关jQuery.ajax()的更多信息。

您可以使用$("#class1Buttons :input").removeAttr('disabled')删除属性。