不积跬步,无以至千里;不积小流,无以成江海。

Dean's blog

  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

扩展jQuery.Validate.js插件remote验证

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 );
}

 

不允许评论
粤ICP备17049187号-1