jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
query formvalidator插件非常好用,但是有一个严重的bug,在使用ajax验证的时候,如果输入框的内容已经存在,把鼠标放到输入框,不做任何修改再离开,则会提示错误, 这是这个插件犯的一个很愚蠢的错误
. 代码如下:
oneisvalid: function(id, index) {
var returnobj = new object();
returnobj.id = id;
returnobj.ajax = -1;
returnobj.errormsg = ""; //自定义错误信息
var elem = $("#" + id).get(0);
var settings = elem.settings;
var settingslen = settings.length;
//只有一个formvalidator的时候不检验
if (settingslen == 1) { settings[0].bind = false; }
if (!settings[0].bind) { return null; }
for (var i = 0; i < settingslen; i++) {
if (i == 0) {
if ($.formvalidator.isempty(id)) {
returnobj.isvalid = true;
returnobj.setting = settings[0];
break;
}
continue;
}
returnobj.setting = settings[i];
if (settings[i].validatetype != "ajaxvalidator") {
$.formvalidator.triggervalidate(returnobj);
} else {
returnobj.ajax = i;
settings[i].isvalid = true;
}
if (!settings[i].isvalid) {
returnobj.isvalid = false;
returnobj.setting = settings[i];
break;
} else {
returnobj.isvalid = true;
returnobj.setting = settings[0];
if (settings[i].validatetype == "ajaxvalidator") break;
}
}
return returnobj;
}