今天用到了jquery.validationEngine ajax验证,碰到了一个让人很郁闷的问题
ajax验证不通过时也提交表单,在网上找了半天也没找到答案,让人很
没办法,看源码了
调试了半天,终于找到点眉目了,但是不知道自己这样修改对别的地方有没有影响,反正适合我的需求
修改源码jquery.validationEngine.js的地方大概在258到387行
不多说了看代码
*/
_onSubmitEvent: function() {
var form = $(this);
var options = form.data('jqv');
// validate each field (- skip field ajax validation, no necessary since we will perform an ajax form validation)
// 验证每个字段( - 跳过领域Ajax验证,没有必要,因为我们将执行一个Ajax表单验证) 上面这段话翻译
// 为神马要忽略???求解??? 有点瞌睡 想睡觉了 修改下暂时让它不忽略
var r=methods._validateFields(form, true);
/*
if (r && options.ajaxFormValidation) {
methods._validateFormWithAjax(form, options);
return false;
}
*/
//这是要修改的地方
if (r && !methods._checkAjaxStatus(options)) {
return false;
}
if(options.onValidationComplete) {
options.onValidationComplete(form, r);
return false;
}
return r;
},
不好意思啊,上次那个地方有点问题,我改过来了!!!
还有需要注意的是 ajax验证必须返回的是json数据,如果不是的话自己要修改源码里的json请求验证那一块
还有json数据是个数组,验证返回的数据。数据第一个元素是错误字段,第二个是否成功(true或false),第三个为错误消息,可以没有
大概在396到464行,建议直接返回json数据