在验证期间,使用AJAX请求检查数据库。如果为true,则表单不提交
我有一个使用客户端验证的内部应用程序的表单。这是一个完整的嵌套javascript,最后一个调用是一个AJAX请求,它检查以确保同时有两个或更少的约会簿 如果返回false(已预订了2个约会),则会正确触发错误。然而,当它通过时,表单没有提交,它只是坐在那里。什么也不做。嗯,在这一点上我很生气,但它没有做任何其他事情在验证期间,使用AJAX请求检查数据库。如果为true,则表单不提交,ajax,jquery,Ajax,Jquery,我有一个使用客户端验证的内部应用程序的表单。这是一个完整的嵌套javascript,最后一个调用是一个AJAX请求,它检查以确保同时有两个或更少的约会簿 如果返回false(已预订了2个约会),则会正确触发错误。然而,当它通过时,表单没有提交,它只是坐在那里。什么也不做。嗯,在这一点上我很生气,但它没有做任何其他事情 $('#save-button').click(function(event){ var firstAppointmentStartHour = 9;//No appoin
$('#save-button').click(function(event){
var firstAppointmentStartHour = 9;//No appointments before 9 am
var lastAppointmentEndHour = 16;//No appointments after 4 pm
if ($('#name').val() != ''){
if ($('#address').val() != ''){
if ($('#claim_number').val() != ''){
if($('#vin').val() != ''){
if($('#plate').val() != ''){
if($('#appt_start').val() != ''){
var startDateTime = Date.parse($('#appt_start').val());
var startYear = startDateTime.getFullYear();
var startMonth = startDateTime.getMonth() + 1;
startMonth = (startMonth.toString().length == 1) ? '0' + startMonth : startMonth; //append a 0 if it is a single digit month
var startHour = startDateTime.getHours();
var stringStartHour = (startHour.toString().length == 1)? '0' + startHour : startHour; //append a 0 if it is a single digit hour
var startDay = startDateTime.getDate();
var startMinutes = startDateTime.getMinutes();
startMinutes = (startMinutes == '0') ? '00' : startMinutes;
var startTime = startHour + startMinutes/60;
var stringStartDate = startYear+'-'+startMonth+'-'+startDay+' '+stringStartHour+':'+startMinutes+':00';
if (startHour >= firstAppointmentStartHour){
if($('#appt_end').val() != ''){
var endDateTime = Date.parse($('#appt_end').val());
var endYear = endDateTime.getFullYear();
var endMonth = endDateTime.getMonth() + 1;
endMonth = (endMonth.toString().length == 1) ? '0' + endMonth : endMonth; //append a 0 if it is a single digit month
var endHour = endDateTime.getHours();
var stringEndHour = (endHour.toString().length == 1)? '0' + endHour : endHour; //append a 0 if it is a single digit hour (ie 9am)
var endDay = endDateTime.getDate();
var endMinutes = endDateTime.getMinutes();
endMinutes = (endMinutes == '0') ? '00' : endMinutes;
var endTime = endHour + endMinutes/60;
var stringEndDate = endYear+'-'+endMonth+'-'+endDay+' '+stringEndHour+':'+endMinutes+':00';
if(endHour <= lastAppointmentEndHour){
if(startDay == endDay){
if(endTime > startTime){
if ( $('#email').val() != '' || $('#phone').val() != '' ){
event.preventDefault();
$.ajax({
url: "/widgets/collision_center_appointment_calendar/check_overlap/" + stringStartDate + "/" + stringEndDate,
type: "get",
success: function(data){
if (data){
return true;
} else {
showError('**Only two bookings allowed at any time. Please adjust your start and end times**');
return false;
}
},
error:function(){
$('#current_appointments').html('There was an error submitting your information... Please contact Team Systems.');
}
});
} else {
showError('**Please enter either a valid phone number or valid email address**');
return false;
}
} else {
showError('**The appointment start time must be before the appointment end time!**');
return false;
}
} else {
showError('**Start date and end date must be the same day**');
return false;
}
} else {
showError('**The last appointment of the day cant\'t end after 4 pm**');
return false;
}
} else {
showError('**Please enter an end date and time**');
return false;
}
} else {
showError('**The first appointment of the day can\'t be prior to 9 am**');
return false;
}
} else {
showError('**Please enter a start date and time**');
return false;
}
} else {
showError('**Please enter a plate number**');
return false;
}
} else {
showError('**Please enter a VIN**');
return false;
}
} else {
showError('**Please enter a claim number**');
return false;
}
} else {
showError('**Please enter an address**');
return false;
}
} else {
showError('**Please enter a name**');
return false;
}
});
$(“#保存按钮”)。单击(函数(事件){
var firstAppointmentStartHour=9;//上午9点之前没有约会
var lastAppointmentEndHour=16;//下午4点以后没有约会
if($('#name').val()!=''){
如果($(“#地址”).val()!=”){
如果($('#索赔编号').val()!=''){
如果($('#vin').val()!=''){
如果($('#板').val()!=''){
如果($('appt_start').val()!=''){
var startDateTime=Date.parse($('appt#u start').val();
var startYear=startDateTime.getFullYear();
var startMonth=startDateTime.getMonth()+1;
startMonth=(startMonth.toString().length==1)?“0”+startMonth:startMonth;//如果是个位数的月份,则追加一个0
var startHour=startDateTime.getHours();
var stringStartHour=(startHour.toString().length==1)?“0”+startHour:startHour;//如果是一位数字小时,则追加一个0
var startDay=startDateTime.getDate();
var startMinutes=startDateTime.getMinutes();
开始分钟=(开始分钟='0')?'00':开始分钟;
var startTime=startHour+startMinutes/60;
变量stringStartDate=startYear+'-'+startMonth+'-'+startDay+'+stringStartHour+':'+startMinutes+':00';
如果(startHour>=首次任命startHour){
if($('#appt_end').val()!=''){
var endDateTime=Date.parse($('appt_end').val());
var endYear=endDateTime.getFullYear();
var endMonth=endDateTime.getMonth()+1;
endMonth=(endMonth.toString().length==1)?“0”+endMonth:endMonth;//如果是一位数的月份,则追加一个0
var endHour=endDateTime.getHours();
var stringEndHour=(endHour.toString().length==1)“'0'+endHour:endHour;//如果是一位数的小时,则追加一个0(即上午9点)
var endDay=endDateTime.getDate();
var endMinutes=endDateTime.getMinutes();
endMinutes=(endMinutes='0')?'00':endMinutes;
var endTime=endHour+endMinutes/60;
变量stringEndDate=endYear+'-'+endMonth+'-'+endDay+'+stringEndHour+':'+endMinutes+':00';
如果(结束小时开始时间){
如果($('#email').val()!=''|$('#phone').val()!=''){
event.preventDefault();
$.ajax({
url:“/widgets/collision\u center\u appointment\u calendar/check\u overlap/”+stringStartDate+“/”+stringEndDate,
键入:“获取”,
成功:功能(数据){
如果(数据){
返回true;
}否则{
淋浴时间('**任何时候只允许两次预订。请调整开始和结束时间**);
返回false;
}
},
错误:函数(){
$(“#当前#U约会”).html('提交信息时出错…请与团队系统联系');
}
});
}否则{
淋浴ROR(“**请输入有效的电话号码或有效的电子邮件地址**”);
返回false;
}
}否则{
淋浴ROR(“**约会开始时间必须早于约会结束时间!**”);
返回false;
}
}否则{
淋浴ROR(“**开始日期和结束日期必须相同**”);
返回false;
}
}否则{
淋浴时间(“**当天最后一次约会不能在下午4点后结束**”);
返回false;
}
}