日期:2014-05-16  浏览次数:20409 次

JQuery.validate.js使用remote验证唯一性的bug
以下是源代码的一部分:
$.ajax($.extend(true, {
         url: param,
mode: "abort",
port: "validate" + element.name,
dataType: "json",
data: data,
success: function(response) {
validator.settings.messages[element.name].remote = previous.originalMessage;
var valid = response === true;
if ( valid ) {
var submitted = validator.formSubmitted;
validator.prepareElement(element);
validator.formSubmitted = submitted;
validator.successList.push(element);
validator.showErrors();
} else {
var errors = {};
var message = response || validator.defaultMessage( element, "remote" );
         errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message;
validator.showErrors(errors);
}
previous.valid = valid;
validator.stopRequest(element, valid);
}
返回数据类型为“json”,既然为json,那就是key/value了,那么response === true就永远为false了,
这时form表单就永远不能提交了。