2

我有一个带有提交输入的表单,我需要在单击按钮时,我的脚本执行一些 Ajax 操作。我还需要在 Ajax 请求期间禁用该按钮。所以我需要一个 jQuery 命令来避免在单击输入时提交真正的表单。我试着用这个:

$('input.searchplease').click(function () {
    $(this).attr('disabled', 'disabled');

    alert('Yep');
    //Do Ajax
});

这没有奏效。我的意思是,警报显示正确,但表单已提交。那么你的建议是什么?

4

5 回答 5

7

试试这个:

$('input.searchplease').click(function (e) {
   $(this).attr('disabled', 'disabled');

   alert('Yep');
   //Do Ajax

   e.preventDefault();
});
于 2012-04-17T12:09:49.217 回答
1
$('input.searchplease').click(function () {
    alert('yep');
    return false;
});

这应该工作

于 2012-04-17T12:10:09.217 回答
0

你可以这样做:

$('form').submit(function(){
    ... ajax things

    return false;
});

我宁愿不禁用按钮(然后启用它),除非我必须这样做。

于 2012-04-17T12:10:02.937 回答
0

试试这种方式:

$("#id-of-your-form").submit(function() {

    $("#id-of-your-submit-input").attr("disabled", true);

    // do-ajax
    // you can use jquery's ajax complete handler to enable the submit button again

    return false;
});
于 2012-04-17T12:16:29.390 回答
0

我认为这可以解决问题:

$('form').submit(function(event) {
    event.preventDefault();
    $('#submit-button-ID').attr('disabled', 'disabled');
    $.ajax({
        ...,
        success: function() {
                $('#submit-button-ID').removeAttr('disabled');
              }
    });
});
于 2012-04-17T12:33:31.113 回答