使用jQuery Validation-Engine v2.2。 Ajax验证可以正确内联工作。 但是当我想在提交表单之前单独调用它时,即使验证成功,它也总是返回true。
<input type="text" name="EmailAddress" id="EmailAddress" value=""
title="Email Address" maxLength="50" size="50"
class="validate[required,custom[email],ajax[ajaxEmailCheck]] register_input word_count"/>
$("#EmailAddress").validationEngine("validate");
据我所知,如果验证失败,它应该返回true。但如果成功,这也会返回true。内联验证工作完美。这可能是ajax验证的异步方面吗?我将如何为单个字段执行此操作?
我想在提交中再次执行此操作&#34;再次&#34;是因为我们的一些客户无需进行验证,无论如何都要提交表格。如果任何验证失败,表单确实不应该提交。也不确定为什么会发生这种情况。
在提交表单时似乎没有触发任何ajax验证,只有其他内联验证才会被触发。
我目前将触发器设置为默认模糊,因为我希望他们知道何时出现错误时他们会通过字段。
关于如何使用ajax验证处理这种情况的任何想法?
答案 0 :(得分:0)
我最终做的是对该字段进行函数调用验证并在i中进行非异步ajax调用。如果ajax调用失败,这可以防止表单提交。
<input type="text" name="EmailAddress" id="EmailAddress" value=""
title="Email Address" maxLength="50" size="50"
class="validate[required,custom[email],funcCall[checkEmail]] register_input word_count"/>
function checkEmail(field, rules, i, options){
var url = "/api/AjaxEmailCheck/";
var data = field.attr("id") + "=" + field.val();
var msg = undefined;
$.ajax({
type: "GET",
url: url,
cache: false,
dataType: "json",
data: data,
async: false,
success: function(json) {
if(!json[1]) {
msg = json[2];
}
}
});
if(msg != undefined) {
return msg;
}
}
此插件中的ajax验证似乎仍存在一些问题。