如何使用jQuery验证检查确切的长度?

使用 jQuery Validation plugin验证表单,如何确认字符串长度恰好是X个字符?

解决方法

由于(目前)没有内置方法,因此您需要添加自己的方法。这可行:
jQuery.validator.addMethod("exactlength",function(value,element,param) {
 return this.optional(element) || value.length == param;
},$.validator.format("Please enter exactly {0} characters."));

然后可以像这样使用:

$("#formtovalidate").validate({
  rules: {
    somefield: {
      exactlength: 10
    }
   });

更新 – 工作原理

我被问到这是如何工作的。我不知道所有的细节;我在以前存在的方法上建模了这种方法。但是,这是我解释它的最佳尝试。

>该函数接受value,element和param。

> value是要验证的字段中输入的值
>元素是字段本身
> param是规则类型和冒号之后的任何内容。在上面的例子中,精确长度为10:10

>下一行是一个return语句。这将验证方法的最终判定返回给调用它的代码。任何返回true的验证方法都是说’此字段通过验证!’它将返回它所在行的值。
>返回后跟两个声明,用’或’运算符(||)分隔。

> ||运算符意味着’评估此项左侧的项目。如果是真的,则返回true。如果没有,请尝试右边的那个。如果是真的,则返回true。否则,返回false。

>左边的项目是this.optional(元素)。如果规则中不需要该元素,则返回true,验证也将返回true。这意味着’如果我不告诉你这个领域是必需的,我不在乎它是否有效。’
>如果需要该字段,我们将移至||的右侧。这是实际的验证测试。它将字段输入的长度与您指定的长度进行比较。如果它们相同,则返回true,方法返回true,验证通过。否则,验证失败。

就是这样。如需进一步的帮助,请参阅documentation,特别是关于custom validation methods的部分。

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...