jquery.validate.js的remote方法,接受一个接口,它要求接口直接返回true/false,如果期望在验证失败时,提供不同的提示,这个就需要对jqueryvalidate.js进行扩展。
先找到remote: function( value, element, param )方法,对其success方法进行调整:
success: function( response ) {
var valid = response === true || response === "true",
errors, message, submitted;
//新增部分,如果返回的是一个json对象,则进行处理。具体的JSON格式,可按实际需要调整
if(typeof(response) == "object"){
//获取验证结果
valid = (response.error.err_code == 0 || response.error.err_code == 1);
//获取提示语
if(response.error.err_msg != "") message = response.error.err_msg;
}
validator.settings.messages[ element.name ].remote = previous.originalMessage;
if ( valid ) {
submitted = validator.formSubmitted;
validator.prepareElement( element );
validator.formSubmitted = submitted;
validator.successList.push( element );
delete validator.invalid[ element.name ];
validator.showErrors();
} else {
errors = {};
//如果已设置了message则直接使用
message = message || response || validator.defaultMessage( element, "remote" );
errors[ element.name ] =
previous.message = $.isFunction( message ) ? message( value ) : message;
validator.invalid[ element.name ] = true;
validator.showErrors( errors );
}
previous.valid = valid;
validator.stopRequest( element, valid );
}