8

我正在尝试实现在单击按钮时禁用按钮,然后在 ajax 请求成功完成后再次启用它的场景。

以下是我的代码片段。

形式

<button id="btnSubmit" type="submit" class="btn btn-warning btn-lg">Submit!</button>

Javascript

$('#resForm').validate({
  // disable submit button
  $('#btnSubmit').prop('disabled', true);

  submitHandler: function(form) {
    $.ajax({
      ..... typical ajax stuff .....
      success: function(data) {
        alert(data);
        $('success').html(data);
        // enable reserve button again
        $('#btnSubmit').prop('disabled', false);
      },
      error: function (jqXHR, textStatus, errorThrown) {
        // console.log(jqXHR);
      }
    });
  }
});

它不起作用。在 Chrome 上检查我的控制台会告诉我Uncaught SyntaxError: Unexpected token (。感觉像是某个地方的愚蠢错误,我无法弄清楚。我已经阅读了prop适用于 jQuery 1.6.1 及更高版本的内容,并且我使用的是 1.8.3。

4

3 回答 3

10
$('#resForm').validate({


  submitHandler: function(form) {
// disable submit button
  $('#btnSubmit').prop('disabled', true);
    $.ajax({
      ..... typical ajax stuff .....
      success: function(data) {
        alert(data);
        $('success').html(data);
        // enable reserve button again
        $('#btnSubmit').prop('disabled', false);
      },
      error: function (jqXHR, textStatus, errorThrown) {
        // console.log(jqXHR);
      }
    });
  }
});

尝试这个

于 2013-10-07T08:55:23.523 回答
2

从我对 SO 中另一篇文章的回答! 我想不出更简单/更容易的方法!;-)


对于锚标签(链接):

<a href="#delete-modal" class="btn btn-danger" id="delete"> Delete</a>

要启用锚标记:

 $('#delete').removeClass('disabled');
 $('#delete').attr("data-toggle", "modal");

在此处输入图像描述


要禁用锚标记:

 $('#delete').addClass('disabled');
 $('#delete').removeAttr('data-toggle');

在此处输入图像描述

于 2015-04-28T09:18:02.797 回答
0

使用http://jsfiddle.net/检查您的代码。

尝试:

$('#resForm').validate({
  submitHandler: function(form) {
// disable submit button
  $('#btnSubmit').prop('disabled', true);
    $.ajax({
      //..... typical ajax stuff .....
      success: function(data) {
        alert(data);
        $('success').html(data);
        // enable reserve button again
        $('#btnSubmit').prop('disabled', false);
      },
      error: function (jqXHR, textStatus, errorThrown) {
        // console.log(jqXHR);
      }
    });
  }
});

Fiddle with Correction: http: //jsfiddle.net/shree/qB9aW/.JSHint给你一个错误提示。

于 2013-10-07T09:04:12.580 回答