Javascript 如何在jQuery中单击后禁用按钮

Javascript 如何在jQuery中单击后禁用按钮,javascript,jquery,ajax,Javascript,Jquery,Ajax,有时我可以触发提交按钮两次。ajax也会被触发两次 以下是我的html代码: <div class="buttons-area"> <input id="step-two" class="btn btn-primary" type="submit" value="Next step »"> </div> 下面是我的ajax: <script> $(document).ready( function () {

有时我可以触发提交按钮两次。ajax也会被触发两次

以下是我的html代码:

<div class="buttons-area">
    <input id="step-two" class="btn btn-primary" type="submit" value="Next step »">
</div>

下面是我的ajax:

<script>
    $(document).ready( function () {

        $('#step-two').on('click', function(e) {

            e.preventDefault();

            var formData = new FormData();

            formData.append('username', $('#username').val());
            formData.append('email', $('#email').val());
            formData.append('password', $('#password').val());
            formData.append('password_confirmation', $('#password_confirmation').val());

            $.ajax({
                url:         'registration',
                method:      'post',
                processData: false,
                contentType: false,
                cache:       false,
                dataType:    'json',
                data:        formData,
                beforeSend: function()
                    {
                        $(".validation-error-inline").remove();
                    }
                })
                .done(function(data) {

                    if (data.validation_failed == 1)
                    {
                        var arr = data.errors;

                        $.each(arr, function(index, value)
                        {
                            if (value.length != 0)
                            {

                                $("#"+index).closest(".middle").next(".right")
                                            .append('<span class="text-error validation-error-inline">' + value[0] + '</span>');

                            }
                        });

                    }


                })
                .fail(function(jqXHR, ajaxOptions, thrownError) {
                    alert('No response from server');
                });
                return false;

        });
    });
</script>

$(文档).ready(函数(){
$(“#第二步”)。在('click',函数(e){
e、 预防默认值();
var formData=new formData();
append('username',$('#username').val());
formData.append('email',$('#email').val();
append('password',$('#password').val();
append('password_confirmation',$('password_confirmation').val();
$.ajax({
url:'注册',
方法:“post”,
processData:false,
contentType:false,
cache:false,
数据类型:“json”,
数据:formData,
beforeSend:function()
{
$(“.validation error inline”).remove();
}
})
.完成(功能(数据){
if(data.validation_failed==1)
{
var arr=数据错误;
$。每个(arr,函数(索引,值)
{
如果(value.length!=0)
{
$(“#”+索引)。最近(“.middle”)。下一个(“.right”)
.append(“”+值[0]+“”);
}
});
}
})
.fail(函数(jqXHR、ajaxOptions、thrownError){
警报(“服务器无响应”);
});
返回false;
});
});
如何在第一次单击后禁用按钮,并仅在ajax完成时才允许下一次单击

现在,如果我速度快,我可以在行中触发ajax两次,并且相同的错误消息显示两次。

只需添加
$(this).attr(“disabled”,“disabled”)之前
返回false

$(此).removeAttr(“禁用”)如果要启用按钮。否则按钮将被禁用,直到页面刷新。

只需添加
$(this).attr(“禁用”、“禁用”)之前
返回false

$(此).removeAttr(“禁用”)如果要启用按钮。否则按钮将被禁用,直到页面刷新。

只需添加
$(this).attr(“禁用”、“禁用”)之前
返回false

$(此).removeAttr(“禁用”)如果要启用按钮。否则按钮将被禁用,直到页面刷新。

只需添加
$(this).attr(“禁用”、“禁用”)之前
返回false


$(此).removeAttr(“禁用”)如果要启用按钮。否则,按钮将被禁用,直到页面刷新。

您可以单击禁用按钮

$('#step-two').on('click', function(e) {
 e.preventDefault();
$(this).prop('disabled',true); //disable further clicks
…
并在
always()
回调中启用,这样无论请求是否成功,按钮都将在请求后启用

$.ajax({
            url:         'registration',
            method:      'post',
            processData: false,
            contentType: false,
            cache:       false,
            dataType:    'json',
            data:        formData,
            beforeSend: function()
                {
                    $(".validation-error-inline").remove();
                }
            })
.done(function(){
   // code
 })
.fail(function(){
   // code
})
.always(function(data) {
 $('#step-two').prop('disabled',false); // re-enable the button once ajax is finished
})

您可以在单击时禁用该按钮

$('#step-two').on('click', function(e) {
 e.preventDefault();
$(this).prop('disabled',true); //disable further clicks
…
并在
always()
回调中启用,这样无论请求是否成功,按钮都将在请求后启用

$.ajax({
            url:         'registration',
            method:      'post',
            processData: false,
            contentType: false,
            cache:       false,
            dataType:    'json',
            data:        formData,
            beforeSend: function()
                {
                    $(".validation-error-inline").remove();
                }
            })
.done(function(){
   // code
 })
.fail(function(){
   // code
})
.always(function(data) {
 $('#step-two').prop('disabled',false); // re-enable the button once ajax is finished
})

您可以在单击时禁用该按钮

$('#step-two').on('click', function(e) {
 e.preventDefault();
$(this).prop('disabled',true); //disable further clicks
…
并在
always()
回调中启用,这样无论请求是否成功,按钮都将在请求后启用

$.ajax({
            url:         'registration',
            method:      'post',
            processData: false,
            contentType: false,
            cache:       false,
            dataType:    'json',
            data:        formData,
            beforeSend: function()
                {
                    $(".validation-error-inline").remove();
                }
            })
.done(function(){
   // code
 })
.fail(function(){
   // code
})
.always(function(data) {
 $('#step-two').prop('disabled',false); // re-enable the button once ajax is finished
})

您可以在单击时禁用该按钮

$('#step-two').on('click', function(e) {
 e.preventDefault();
$(this).prop('disabled',true); //disable further clicks
…
并在
always()
回调中启用,这样无论请求是否成功,按钮都将在请求后启用

$.ajax({
            url:         'registration',
            method:      'post',
            processData: false,
            contentType: false,
            cache:       false,
            dataType:    'json',
            data:        formData,
            beforeSend: function()
                {
                    $(".validation-error-inline").remove();
                }
            })
.done(function(){
   // code
 })
.fail(function(){
   // code
})
.always(function(data) {
 $('#step-two').prop('disabled',false); // re-enable the button once ajax is finished
})

尝试在单击处理程序的顶部添加以禁用按钮

$('#step-two').prop('disabled', true);
然后将其添加到
return false
之前以重新启用:

$('#step-two').prop('disabled', false);

尝试在单击处理程序的顶部添加以禁用按钮

$('#step-two').prop('disabled', true);
然后将其添加到
return false
之前以重新启用:

$('#step-two').prop('disabled', false);

尝试在单击处理程序的顶部添加以禁用按钮

$('#step-two').prop('disabled', true);
然后将其添加到
return false
之前以重新启用:

$('#step-two').prop('disabled', false);

尝试在单击处理程序的顶部添加以禁用按钮

$('#step-two').prop('disabled', true);
然后将其添加到
return false
之前以重新启用:

$('#step-two').prop('disabled', false);
$(文档).ready(函数(){
$(“#第二步”)。在('click',函数(e){
$(this).prop('disabled',true);//
$(document).ready(函数(){
$(“#第二步”)。在('click',函数(e){
$(this).prop('disabled',true);//
$(document).ready(函数(){
$(“#第二步”)。在('click',函数(e){
$(this).prop('disabled',true);//
$(document).ready(函数(){
$(“#第二步”)。在('click',函数(e){

$(this.prop('disabled',true);//在ajax调用之后,必须禁用按钮,如下所示:

$('#step-two').on('click', function(e) {
   var $button = $(this);
   $button.attr('disabled', 'disabled');
但是,如果有必要,不要忘记再次启用它。最好的方法是在“完成”功能中启用它


尊敬。

在ajax调用后,您必须禁用按钮,如下所示:

$('#step-two').on('click', function(e) {
   var $button = $(this);
   $button.attr('disabled', 'disabled');
但是,如果有必要,不要忘记再次启用它。最好的方法是在“完成”功能中启用它


尊敬。

在ajax调用后,您必须禁用按钮,如下所示:

$('#step-two').on('click', function(e) {
   var $button = $(this);
   $button.attr('disabled', 'disabled');
但是,如果有必要,不要忘记再次启用它。最好的方法是在“完成”功能中启用它


尊敬。

在ajax调用后,您必须禁用按钮,如下所示:

$('#step-two').on('click', function(e) {
   var $button = $(this);
   $button.attr('disabled', 'disabled');
但是,如果有必要,不要忘记再次启用它。最好的方法是在“完成”功能中启用它


注意。

在单击事件中添加代码:

 $("#step-two").prop("disabled", true)
ajax完成时:

$("#step-two").prop("disabled", false)

在单击事件中添加代码:

 $("#step-two").prop("disabled", true)
ajax完成时:

$("#step-two").prop("disabled", false)

在单击事件中添加代码:

 $("#step-two").prop("disabled", true)
ajax完成时:

$("#step-two").prop("disabled", false)

在单击事件中添加代码:

 $("#step-two").prop("disabled", true)
ajax完成时:

$("#step-two").prop("disabled", false)
我想