我有一个只会提交的表单,如果我双击提交按钮。此外,如果我不解开('提交'),那么它根本不会解雇。我需要改变的任何想法,只需点击一下即可。提前谢谢。
$('#formID').submit(function (event)
{
event.preventDefault();
var InspectionDate = $('#datepicker').val().split('/');
InspectionDate.reverse();
InspectionDate = InspectionDate.join('-');
InspectionHour = $('#time_hour').val();
InspectionMinutes = $('#time_minutes').val();
var InspectionDateTime = InspectionDate + ' ' + InspectionHour + ':' + InspectionMinutes + ':00';
$.ajax(
{
type: "POST",
url: "ajax_booking_check.php",
data: 'InspectionDateTime=' + InspectionDateTime,
cache: false,
success: function (response)
{
if (response == 1)
{
alert("An appointment for the selected Date and Time already exists.\n\nDouble Bookings are not possible.\n\nPlease refer to the calender to find an available appointment.");
}
else
{
$('#formID').unbind('submit').submit();
}
}
});
答案 0 :(得分:0)
我不熟悉validationEngine
,但我已经快速查看了它的源代码,并且我已经玩过你发布的小提琴。这就是我提出的(缩减代码):
jQuery(document).ready(function(){
var ischecking=false;
function mychecker(event) {
if(event.isDefaultPrevented()){
return false;
}
event.preventDefault();
if(ischecking){
return false;
}
ischecking=true;
$.ajax({
// ...
cache: false,
success: function(response){
// ...
$('#formID').off('submit',mychecker).submit();
},
complete: function(){
ischecking=false;
}
});
}
jQuery('#formID').validationEngine().submit(mychecker);
});
请注意两项更改:
mychecker
)并将其删除,而不是删除所有绑定事件。此代码有效,并修复了一些需要修复的问题,但我不能肯定它会解决您的问题。