两个数字的Jquery验证精确长度?

Posted

技术标签:

【中文标题】两个数字的Jquery验证精确长度?【英文标题】:Jquery validation exactlength for two numbers? 【发布时间】:2014-12-07 19:29:08 【问题描述】:

我正在为表单使用验证器插件。 我会使用方法精确长度,但有 2 个数字。 我会检查该字段是 11 个字符还是 10 个字符。

jQuery.validator.addMethod("exactlength", function(value, element, param) 
return this.optional(element) || value.length == param;
, jQuery.format("Please enter exactly 0 characters."));

$("#formtovalidate").validate(
 rules: 
  somefield: 
    exactlength: 10,
    exactlength: 11
  
);

你能做到吗?我怎样才能改变方法来做到这一点? 谢谢

【问题讨论】:

【参考方案1】:

你不能两次传递同一个键,你需要做的是把它作为一个数组传递

jQuery.validator.addMethod("exactlength", function(value, element, param) 
  if (this.optional(element)) 
    return true;
  
  if ($.isArray(param)) 
    return $.inArray(value.length, param) != -1;
   else 
    return value.length == param;
  
, function(param, input) 
  return jQuery.validator.format("Please enter exactly " + ($.isArray(param) ? param.join() : param) + " characters.")
);

$("form").validate(
  debug: true,
  rules: 
    f1: 
      exactlength: [10, 11]
    ,
    f2: 
      required: true,
      exactlength: 3
    

  
);

//
$('#save').click(function() 
  $('form').valid()
  return false;
)
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script>
<form>
  <div>
    <input name="f1" />
  </div>
  <div>
    <input name="f2" />
  </div>
  <input id="save" type="button" value="save" />
</form>

【讨论】:

不明白为什么返回这个错误:TypeError: a.validator.methods[d] is undefined 使用的验证器版本是什么? 对不起,我搞错了!!这正是我一直在寻找的!非常感谢!

以上是关于两个数字的Jquery验证精确长度?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 密码验证和深入理解JSONP前端jQuery框架

js验证字符长度,一个中文2个字符,英文和数字为1个字符

如何在 SAS 中精确地添加两个大数?

在文本框中只允许前两个和后两个是字母,中间是数字(例如 EE123456789IN)

js浮点数的加减乘除解决方案

使用 jquery 验证器验证两个字段