我有一个javascript方法来进行一些验证:
function validar(event) {
var arrIni = $("#initialDate").val().split("/");
var arrFim = $("#endDate").val().split("/");
var dateIni = new Date(arrIni[2], arrIni[1], arrIni[0]);
var dataEnd = new Date(arrFim[2], arrFim[1], arrFim[0]);
var check = true;
if (dataEnd < dataIni) {
event.preventDefault();
toastr.error('End date must be higher than initial date!');
check = false;
} else {
$.ajax({
url: '/Configurations/ValidateInsert/',
type: 'GET',
dataType: 'html',
data: { DataIni: $("#initialDate").val(), DataEnd: $("#endDate").val() },
cache: false,
success: function (response) {
if (response === 'false') {
event.preventDefault();
toastr.error('There is already a configuration with the given dates.');
check = false;
}else{
check = true;
}
},
failure: function (response) {
toastr.error('Error.');
},
error: function (response) {
toastr.error('Error.');
}
});
}
}
第一次验证有效。当我尝试使用ajax调用验证时会发生此问题。即使出现错误,当我调用event.preventDefault时,表单仍会提交事件,并且不会显示带错误消息的toastr。我在这里缺少什么?
答案 0 :(得分:0)
如果要应用Ajax验证,请将按钮类型从“提交”按钮更改为普通按钮和$(&#34; #Form Id&#34;)。如下面给出的jQuery的submit()在ajax成功函数中。
$(&#34; #Form Id&#34;)。submit();