将 jQuery Validation 插件中的验证方法与“or”而不是“and”结合起来

2024-03-10

在 jQuery 验证插件中,有几个方法可以执行相同的操作,但针对不同的区域设置,例如dateISO and dateDE,两者都验证日期格式。如何组合这些以便输入元素接受either?

假设我有一个<input type="text" name="dateInput" id="dateInput" />在我的表单中,我希望允许用户在此字段中仅输入日期。但是,我想允许几种不同的日期格式 - 例如,用户应该能够输入eitherISO 日期or根据德国日期规则格式化的日期。

If I do

rules: { dateInput: { required: true, dateISO: true, dateDE: true } }

该表格将never有效,因为两种日期格式都是必需的,并且该要求永远无法满足。有没有办法将它们组合为“或”而不是“和”,而无需编写自己的验证方法?

如果我必须自己编写,我该如何使其尽可能通用?


虽然您可以像 Reigel 那样组合正则表达式,但您也可以直接调用这些方法(以防它们发生变化!),如下所示:

$.validator.addMethod("dateISODE", function(value, element) { 
    return $.validator.methods.dateISO.apply(this, arguments) 
        || $.validator.methods.date.apply(this, arguments); 
}, "Please enter a valid ISO or German date");

我现在有date代替dateDE在这里,因为在较新版本的插件中dateDE去掉了 http://bassistance.de/2009/11/30/release-validation-plugin-1-6/。现在它在一个本地化文件 http://ajax.microsoft.com/ajax/jquery.validate/1.7/localization/methods_de.js这只是覆盖date方法。如果您使用的是旧版本,那就没问题,只需坚持使用dateDE.

您可以在这里尝试演示 http://jsfiddle.net/4JWAe/


更新评论:更通用的形式如下所示:

$.validator.addMethod("oneOf", function(value, element, params) {
  for(p in params) {
    if(params.hasOwnProperty(p) && 
       $.validator.methods[p].apply(this, [value, element, params[p]]))
      return true;
  }
  return false;
}, "Please enter a valid date");

规则如下:

$("form").validate({
  rules: {
    dateFieldName: { oneOf: { dateISO:true, date:true } }
  }
});

您可以在这里尝试演示 http://jsfiddle.net/4JWAe/2/,这需要任意数量的验证器函数并运行它们,至少有一个必须返回true为了它的成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 jQuery Validation 插件中的验证方法与“or”而不是“and”结合起来 的相关文章

  • 如何使用 CSS 或 jQuery 设置第一个和最后一个 li 的样式?

    我如何设计第一个 顶级 li和最后一个 顶层 li使用 CSS 还是 jQuery 我正在使用 CSS 设置第一个li但它也是造型第一li在每个中学阶段ul 那么我怎样才能让它只设置样式li其中包含 Main 1 最后一个包含 Main 6
  • 取消选择所有复选框后,客户端过滤器显示所有项目

    加载时 复选框将取消选中 并显示所有列表项 当选中过滤器时 将显示相关的列表项 我遇到的问题是 当您再次取消选中所有复选框时 我需要显示所有项目而不是隐藏 这是我的小提琴 http jsfiddle net amesy B9Hnu 124
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • jquery 中的函数返回未定义[重复]

    这个问题在这里已经有答案了 我在 jquery 中调用的函数返回未定义 我检查了该函数 当我对其进行调试时 它返回正确的数据 function addToPlaylist component type add to pl value pl
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • jQuery Mobile + Admob:轮换?

    我使用 jQuery Mobile 框架创建了一个移动应用程序 所有页面都在index php中加载 使用 div 在每个页面的页脚中 我添加了Admob代码 div div div
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h
  • jQuery 更改 id!

    我是一个 jQuery 菜鸟 一直在尝试添加一个脚本来更改 div onClick 的 id 这里有一个jsfiddle 示例 http jsfiddle net 475ep function accept div scrollwrap a
  • 如何使用 jQuery 禁用 Firefox 对所有图像的默认拖放行为?

    Firefox 有一个恼人的行为 它默认允许用户拖放任何图像元素 如何使用 jQuery 彻底禁用此默认行为 以下将在 Firefox 3 及更高版本中执行此操作 document on dragstart function return
  • jQuery 最接近属性过滤器

    jQuery 1 5 1 是否支持最接近方法中的属性选择器 鉴于以下结构 el代表值为 513 的复选框 我正在尝试向上检查值为 0 的祖先复选框 el closest input value 0 0 checked true 但选择器没有
  • 仅支持以下协议方案的跨源请求:http

    这是一个常见的 JavaScript 问题 但它在使用 Splunk JavaScript SDK 的代码中弹出 错误是 XMLHttpRequest 无法加载 file C proxy services auth login output
  • 在 Safari 中提交表单后无法对 DOM 进行样式更改

    在 Safari 中提交表单后 我在对 DOM 进行样式更改时遇到问题 有谁知道它是否可能 这是 Safari 预期的浏览器行为吗 我设置了一个非常简单的示例 以便您可以看到实际问题 http jamesmichaelking com st
  • Jquery文件上传插件进度条

    这个插件 https github com blueimp jQuery File Upload wiki管理网页中的文件上传 并且可以在上传过程中添加很多 UI 元素 您创建一个输入文件类型元素 然后绑定 js 文件 使用实例化代码和 w
  • 如何获取输入元素上的 TAB 键事件?

    我尝试在输入字段中按下返回键时触发按钮 这有效 但是 如果我按 Tab 键 则不会触发任何内容 因为未捕获 TAB 键事件 小提琴示例 http jsfiddle net a08t4o7r 例如 这是我的 JQ 代码片段 input nam
  • 使用 Overflow:auto 获取 div 的高度;

    我有一个 div 高度 100px 和溢出 auto 内容是动态的 我想滚动底部的div 我尝试过 chat content scrollTop chat content height 但如果内容大于 100px chat content
  • FullCalendar:如何重新创建/重新初始化 FullCalendar 或批量添加多个事件

    我正在尝试将新事件批量添加到日历中 但未能找到方便的使用方法 所以我决定用新的事件数组重新初始化视图 所以我尝试了以下方法 var events title Event start new Date y m d 10 description
  • Jquery Ajax 调用返回 403 状态

    我有一个 jquery Ajax 调用来实现会话的 keepalive 这个 keepAlive 方法将每 20 分钟调用一次 function keepAlive ajax type POST url KeepAliveDummy asp
  • 在选择 tr 来覆盖父 div 上的第 n 个子类时,如何使用 jquery addClass ?

    我用它来选择一个 tr 当单击它来更改 tr 的颜色时 tr click function this addClass selected siblings removeClass selected 参见小提琴http jsfiddle ne
  • 如何更改数据表中标题单元格的内容?

    我正在使用数据表 http datatables net plugin 在我的可排序列上 我想用按钮替换列文本 但是这样做 oSettings aoColumns i nTh text 我可以检索相应列的文本 但是 oSettings ao

随机推荐

  • Random().Next() 的流需要多长时间才会重复?

    考虑 NETRandom stream var r new Random while true r Next 重复需要多长时间 根据文档 伪随机数是从有限个数中以相等的概率选择的 一组数字 选定的数字是 不是完全随机的 因为 确定的数学算法
  • 检查 pandas 列中的连续行值

    I have hi 0 1 1 2 2 4 3 8 4 3 5 3 6 2 7 8 8 3 9 5 10 4 我有一个列表和单个整数的列表 如下所示 2 8 3 2 2 8 对于主列表中的每个项目 我想找出它第一次出现在列中的索引 因此 对
  • 使用 node.js 的 http 请求失败 发送后无法设置标头

    我尝试使用 https http 请求服务器并将结果显示在网页中 它作为服务器上的脚本工作 但由于我通过 get 请求返回结果而失败 var express require express var app express var port
  • Ember Data:在控制台中获取模型

    我有最简单的 Ember 应用程序JSBin http jsbin com aYIkAcUk 2 edit 我想做的就是找到一个模型 基于其他所以问题 https stackoverflow com questions 18756092 h
  • 跨域AJAX post调用

    我必须对位于另一台服务器上的 asp 表单进行 POST 调用 带参数 对于开发 我在同一台服务器上执行了此操作 并且运行良好 但现在我在另一台服务器上测试它 我收到的不是 200 状态 而是 0 状态 我认为这是因为它是跨域 AJAX 调
  • 如何知道三星 S8、S8+、S9 等底部导航栏何时可见?

    三星 S8 S8 S9 等上的底部导航栏在关闭时会导致 UI 和动画噩梦 导致视图从应用程序的顶部和底部移入和移出 对于这些设备 如果导航栏打开 一切都会完美运行 但如果关闭 所有动画都会低于导航栏的高度 我的想法是调整动画 但是 我很难弄
  • Paper_trail 宝石能力

    我想知道是否可以使用以下用例来实现纸迹 https github com airblade paper trail宝石 维基百科类型的应用程序 其中登录用户可以更改 编辑维基页面 其中 版主可以撤消特定更改 我知道 papertrail 允
  • 如何查看TortoiseSVN中的所有修订?

    TortoiseSVN 显示日志 选项按日期过滤修订 手动更改这些日期很麻烦 如何以最少的麻烦查看所有修订 You must在存储库的根文件夹中执行此操作 取消选中 复制 重命名时停止 Check Include merged revisi
  • 如何在android中离线获取纬度和经度?

    我想在 WiFi 和 Gps 关闭时获取当前位置 纬度和经度 可以从移动 SIM 网络获取纬度和经度 我在谷歌上搜索了更多 但没有得到满意的答案 从我昨天的经验来看question https stackoverflow com q 220
  • 简单地显示 UIInterpolatingMotionEffect 的值?

    这是一个谜题 想象一个典型的 UIInterpolatingMotionEffect UIInterpolatingMotionEffect horizontalMotionEffect UIInterpolatingMotionEffec
  • 使用 FluentValidation 的 WithMessage 方法和命名参数列表

    我正在使用 FluentValidation 并且想使用对象的某些属性值来格式化消息 问题是我对 C 中的表达式和委托的经验很少 FluentValidation 已经提供了一种使用格式参数来执行此操作的方法 RuleFor x gt x
  • Python-检查字符串是否包含数字[重复]

    这个问题在这里已经有答案了 我正在制作一个函数 它使用 while True 循环来要求用户输入通过条件的密码 长度最少为 8 15 个字符 并且至少包含一个整数 我对如何正确检查整数的输入感到困惑 我的程序 def enterNewPas
  • 如何回显$?工作?

    我正在编写一些 PowerShell 脚本来执行一些构建自动化 我发现here https stackoverflow com a 4917997 1977871 that echo 根据先前的语句返回 true 或 false 我刚刚发现
  • AWS cloudformation Template - 为模板中的堆栈提供标签

    我们希望对我们在 AWS 中创建的资源使用公司特定的标签以进行计费 我正在使用云形成模板来启动我们的 Elasticbeanstalk 实例和其他项目相关资源 当我使用 CloudFormation 控制台创建堆栈时 它会要求我在参数后面的
  • NodeJS/Express 请求实体太大 - Heroku

    我到处查看 似乎找不到对此的解释 这就是 Heroku 在我的日志中显示的内容 45 45 00 00 app web 7 Error Request Entity Too Large 45 45 00 00 app web 7 at Ob
  • GTK 3.x 是一个真正的跨平台解决方案吗?

    我已经尝试过 Qt 4 x 5 x 和 GTKmm 3 x 相比 Qt 我更喜欢 GTKmm 现在我刚刚发现 GTKmm 3 x 不提供 Windows 移植 他们也不提供 Mac 移植 基本上我除了 Linux 的库 源代码 二进制文件之
  • Promise.then() 返回 Promise { } [重复]

    这个问题在这里已经有答案了 函数 fetchData 返回一个承诺 然后我通过链接在generateURL函数中处理该承诺promise with then但是它返回 Promise 函数generateURL应该返回一个字符串我做错了什么
  • 从 pdf 中提取的细化表格 - Tabulizer

    我正在 R 中的 Tabulizer 的帮助下从 PDF 中提取一些表格 下面是其中一个表格的代码 library tabulizer location lt http napic jpph gov my portal web guest
  • 将消息从一个 Kafka 主题复制到另一个 Kafka 主题

    我想从生产集群中的 Kafka 集群 主题进入开发环境中的另一个 Kafka 集群 以进行可扩展性和回归测试 对于鸭磁带解决方案 我级联了 Kafka 消费者和生产者 但我的直觉告诉我应该有更好的方法 但是 我还没有找到任何好的解决方案 谁
  • 将 jQuery Validation 插件中的验证方法与“or”而不是“and”结合起来

    在 jQuery 验证插件中 有几个方法可以执行相同的操作 但针对不同的区域设置 例如dateISO and dateDE 两者都验证日期格式 如何组合这些以便输入元素接受either 假设我有一个