单击输入时,使用jQuery忽略表单提交

时间:2012-04-17 12:07:58

标签: javascript jquery

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

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

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

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

5 个答案:

答案 0 :(得分:6)

试试这个:

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

   alert('Yep');
   //Do Ajax

   e.preventDefault();
});

答案 1 :(得分:1)

$('input.searchplease').click(function () {
    alert('yep');
    return false;
});

这应该有效

答案 2 :(得分:0)

你可以这样做:

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

    return false;
});

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

答案 3 :(得分: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;
});

答案 4 :(得分:0)

我认为这会解决问题:

$('form').submit(function(event) {
    event.preventDefault();
    $('#submit-button-ID').attr('disabled', 'disabled');
    $.ajax({
        ...,
        success: function() {
                $('#submit-button-ID').removeAttr('disabled');
              }
    });
});