响应方法在Ajax启动 - 停止事件时禁用和启用提交

时间:2012-12-23 12:55:13

标签: javascript jquery css

我尝试了以下方法:

1)显示/隐藏

$('button').ajaxStart(function() {
 $(this).hide();
});
$('button').ajaxStop(function() {
 $(this).show();
});

2)可见/隐藏

$('button').ajaxStart(function() {
 $(this).css({visibility, 'hidden'});
});
$('button').ajaxStop(function() {
 $(this).css({visibility, 'visible'});
});

3)添加/删除班级

$('button').ajaxStart(function() {
 $(this).addClass('invisible');
});
$('button').ajaxStop(function() {
 $(this).removeClass('invisible');
});

4)启用/禁用

$('button').ajaxStart(function() {
 $(this).attr('disabled','disabled')
});
$('button').ajaxStop(function() {
 $(this).removeAttr('disabled');
});

到目前为止,只有Show / Hide方法响应足以在1s下执行。剩下的时间在1-2秒之间,这显然很长​​。但是,我希望按钮显示但禁用了一些明显的CSS更改。是否有更灵敏的方式暂时启用和禁用提交按钮?

1 个答案:

答案 0 :(得分:0)

试试这个:

$("button").click(function() {

    // disable the submit button before the ajax call...
    $(this).attr('disabled','disabled');
    $.ajax({
        url: 'yoururl.html',
        data: {},
        type: 'post',
        success: function(response){
            // enable the submit button after ajax call success...
            $(this).removeAttr('disabled');
        },
        error: function(){
            // error process here
            $(this).removeAttr('disabled');
        },
        dataType: 'json'
    });
});