我试图阻止这个JQuery POST调用提交两次。尝试了几种不同的变形,但完全不理解。
我见过类似的问题,但他们只说使用unbind,而不是为什么或如何使用不同的场景。
$('.submit').click(function(){
if (error != 1 && submitted != 1 && emailError != 1) {
$(this).css('cursor', 'default');
$(this).fadeTo(0, 0.50);
submitted = 1;
if($(this).parents('form').hasClass('ajaxSend')) {
var url = $(this).parents('form').attr('action');
var fields = {};
$(this).parents('form').find(':input').each(function(){
var name = $(this).attr('name');
var value = $(this).val();
fields[name] = value;
});
$.post(url, fields).done(function(data){
$(".statusMessage").html(data);
$('.modal, .modalClose').css('margin-top' , 120 + $(document).scrollTop() + 'px');
$('.modal, .modalClose').hide();
$('.statusMessage, .modalClose').fadeTo('fast', 1);
$('.modalCover').fadeTo('fast', 0.80);
});
$('.submit').unbind('click').submit();
return false;
}
}
});
答案 0 :(得分:1)
如何禁用提交按钮!
$('#form').submit(function(){
var button = $('#submit');
$.ajax({
url: '',
type: 'post',
dataType: 'html',
success: function(data){
// if OK
button.prop('disabled',false);
},
beforeSend: function(){
button.prop('disabled',true);
},
error: function() {}
});
return false;
});
答案 1 :(得分:0)
您应该在表单提交而非单击按钮上执行此操作:
$("#my-form").on('submit', function(e){
//do ajax stuff
e.preventDefault(); //Stop form submitting via browser default functionality
});