为jQuery验证插件添加规则

3

我正在使用jQuery验证方法来验证用户名,以下是我的规则。我想添加另一条规则,即用户名应只包含字母数字和下划线字符。 我该如何添加这个额外的规则?如果用户输入少于4个字符,是否可以打印最小长度错误消息,如果用户输入无效字符,则给出无效字符错误消息?谢谢。

$(document).ready(function() {
$("#sform").validate({
            rules: {
                username: {
                    required: true,
                    minlength: 4
                }
            },

            messages: {
                username: "Minimum length 4.",              
            }
        });
    });
4个回答

5

添加如下:

jQuery.validator.addMethod("alphanumeric", function(value, element) {
    return !jQuery.validator.methods.required(value, element) || /^[a-zA-Z0-9_]+$/i.test(value);
}
, "Letters, numbers or underscores only please"); 

并在下面应用
$('validatorElement').validate({
    rules : {
        username : { alphanumeric : true }
    }
});

1

1

这比使用正则表达式添加新功能要容易得多,我认为也更可靠。 - robbpriestley

0

虽然这是一个旧问题,但我还是要添加我的答案以便有人可以得到帮助
可以使用以下方法:

  • 创建一个函数来封装我们的验证测试,具有以下签名:function mytest(value, element, params){...}

  • 在建立函数之后,我们可以将其附加到jQuery Validation插件上。为此,我们调用验证器对象的addMethod()函数。

我的代码:

$(document).ready(function() { 
  // other code
  // :  
  // :  
  $.validator.addMethod(
    "passwd",
     function(value, element, regexp) {
        var re = new RegExp(regexp);
           return this.optional(element) || re.test(value);
     },
    "Invalid input"
   );

  $("#add_user_form").validate({
      rules:{
        user_name: {
           required: true,
           minlength: 5,
           maxlength: 15,
           noSpace: true
        },
        password: {
          required: true,
          minlength: 8,
          passwd: "((?=(.*\\d.*){2,})(?=(.*[a-zA-Z].*){2,})(?=(.*[@#$(){}!~,.!^?/|+=-_%].*){2,}).{8,20})"
      }
    },

    messages:{
       user_name: {
         required: "*",
         minlength: " at least 5 characters",
         maxlenght: " only 15 characters",
         noSpace: " No space Please"
       },
       password: {
         required: "*",
         minlength: " Your password must be at least 8 characters long",
         passwd: " Invalid Password choice"
       }
 }); 
 //
 // more code in document.ready 

好的链接:
从jQuery开始 - 如何编写自定义验证规则
如何添加正则表达式验证规则?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接