如何让JQuery validate的remote方法,返回多种不同的错误信息

tinyfool 发布于 2013年11月23日
无人欣赏。
$(document).ready(function() {
  $("#regform").validate({
    rules: { 
      name:{
        required:true,
        minlength:3,
        maxlength:25,
        remote:"/user/ajaxcheck/name/",
      },
    }, 
    messages:{

      name:{
        remote:"用户名已经存在,请换一个"
      },
    },
    onkeyup: false,
    onblur: true
  });
});

假设我有如上的代码,用来检测用户是否存在已经没有问题了。但是这个时候,我希望检测用户名是否有空格、@ 等,我可以扩展/user/ajaxcheck/name/,但是我怎么返回不同的信息呢?当用户存在的时候,返回“用户名已经存在,请换一个”,当用户名不合法的时候,返回“你的用户名不合法,用户名不能包含空格、@ 等”。怎么做到呢?

共2条回复
emitle 回复于 2013年11月23日
<script>
jQuery.validator.addMethod("isUsername", function(value, element) {       
 return this.optional(element) || /\w+/.test(value);
}, "请输入正确的用户名");
$("#demo").validate({
    "rules":{
        "username":{
            "required":true,
            "isUsername":true,
            "remote"  :"index.php",
        }
    },
    "messages":{
        "username":{
            "remote":"用户名已经存在,请换一个",
            "isUsername":"用户名格式错误",
        }
    }
})
</script>
CurveSoft 回复于 2014年03月03日

只能修改validation的源码了,他本身是不支持的,因为他只判断true/false,没地方处理不同的返回值或者消息。

登录 或者 注册