为jQuery验证插件添加规则

时间:2011-03-05 11:37:37

标签: jquery jquery-validate

我正在使用以下规则来使用jQuery验证方法验证用户名。我想添加另一个规则,即用户名应该只包含字母数字和下划线字符。 如何为该规则添加其他方法。如果用户提供少于4个字符,那么我可能会打印最小长度错误消息,如果用户提供无效字符,那么我会给出无效字符错误消息吗?感谢。

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

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

4 个答案:

答案 0 :(得分: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)

使用远程ajax验证执行此操作

$("#sform").validate({
    rules: {
    username: {
        required: true,
        minlength: 4,
        remote: 'alphanumertic.php'
        //check on server
    }
    },
    messages: {
    username: "Minimum length 4.",              
    }
});

可能最好的方法是使用可在

上找到的正则表达式进行验证

jQuery validate: How to add a rule for regular expression validation?

Regular Expression for alphanumeric and underscores

答案 2 :(得分:1)

验证插件附带了additional-methods.js,其中包括字母数字和下划线验证:

http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/additional-methods.js

与上述规则相同:

$('validatorElement').validate({
    rules: {
        username: { alphanumeric : true }
    }
});

答案 3 :(得分: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 

良好的链接:
Starting With jQuery - How to Write Custom Validation Rules
How to add a rule for regular expression validation?