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

时间:2014-03-04 19:57:37

标签: javascript php jquery

如果满足指定的条件,我有以下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输入如何,按钮都会保持禁用状态。

3 个答案:

答案 0 :(得分:1)

您需要使用.prop()

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

在你的情况下,这应该有效:

$('#class1Buttons :input').prop('disabled', data);

答案 1 :(得分:1)

  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
    
  3. 您可以阅读有关jQuery.ajax() here的更多信息。

答案 2 :(得分:0)

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