У меня есть следующий код для плагина проверки jQuery .... в основном при отправке, я сдвигаю все вверх и исчезаю ... единственная проблема в том, что если вы достаточно быстры, вы можете отправить форму несколькораз.Как я могу убедиться, что любые нажатия клавиши ввода на входе (или нажатие на эту кнопку отправки) не будут отправляться дальше?
В основном, что происходит, это то, что форма загружает URL в действииатрибута, когда нет javascript, так что просто отменная привязка не работает ... (даже если бы это было так, я всегда могу достаточно быстро нажать ввод / нажатие, чтобы заставить его сделать еще пару слов ...)
jQuery('.desired').validate({
debug: true,
rules: {
email: {
required: true,
email: true
}
},
wrapper: "div",
messages: {
email: "Please enter a valid email address."
},
errorPlacement: function(error, element) {
error.hide().appendTo(element.parent()).hide().slideDown();
},
errorClass: 'help-text',
submitHandler: function(form) {
var $ = jQuery;
var url = $(form).attr('action');
var query = $(form).serialize();
$.ajax({
url: url,
type: "POST",
data: query,
success: function() {
$("<p class='help-jquery'><b>Thanks</b>")
.insertAfter(jQuery(form))
.css('height', function(i,h) {
$(this).hide()
return h;
});
// $(form).css('height', $(form).height());
$(form).slideUp('slow');
$(form).fadeOut({ queue: false, duration: 'slow' });
// $('.help-jquery').fadeIn('slow');
$('.help-jquery')
.css('opacity', 0)
.slideDown('fast')
.animate(
{ opacity: 1 },
{ queue: false, duration: 'slow' }
);
//$('.desired submit').click(function(){
//return false;
//});
},
error: function() {
console.log('Error: did not submit properly');
},
complete: function(e) {
//$('.desired').unbind('submit');
//e.preventDefault();
//return false;
}
});
},
success: function(error,element){
},
highlight: function(error){
// This empty function needs to be here for this to work
}
});