带有自定义规则远程验证的jQuery验证插件不工作
我正在使用jQuery验证插件进行FuelUX向导表单验证。现在我需要用远程验证来验证几个字段。由于我的表单处于向导中,并且单击“下一步”按钮时需要进行验证,因此我添加了一个自定义验证规则,如下所示:带有自定义规则远程验证的jQuery验证插件不工作,jquery,ajax,jquery-validate,Jquery,Ajax,Jquery Validate,我正在使用jQuery验证插件进行FuelUX向导表单验证。现在我需要用远程验证来验证几个字段。由于我的表单处于向导中,并且单击“下一步”按钮时需要进行验证,因此我添加了一个自定义验证规则,如下所示: $.validator.addMethod("validateRule", function(value, element) { var validator = this; $.ajax({ url: url,
$.validator.addMethod("validateRule", function(value, element) {
var validator = this;
$.ajax({
url: url,
type:"POST",
data: data,
})
.done(function(valid) {
if (valid == "true") {
return true;
} else {
var errors = {};
errors[element.name] = valid;
validator.showErrors(errors);
return false;
}
})},'’);
我的验证从以下位置调用:
$('#create').validate({
errorElement: 'div',
errorClass: 'help-block',
focusInvalid: true,
rules: {
field1: {
required: true
},
title: {
required: true,
validateRule:true
},
单击“下一步”按钮时,我正在检查显示的表单是否有效
$('#fuelux-wizard').ace_wizard().on('change' , function(e, info){
if (info.direction == 'next' && !$('#create').valid()) {
return false;
}
}).on('finished', function(e) {
$('#create').submit();
}).on('stepclick', function(e){
//return false;//prevent clicking on steps
});
这里的问题是,当我检查$('#create').valid()时,不管我从服务器得到什么,它总是为false。我认为这不是等待ajax调用完成,而是等待代码的下一行。如何解决这个问题 您是否尝试将
async:false
添加到ajax请求中?实际上,我尝试在没有async:false的情况下添加它;为什么不使用远程规则…远程规则有完全相同的问题。我不会等待AJAX调用完成,并将重定向到WzardNobody中的步骤2。是否存在此问题?