Jquery – 在表单上validation时间值 - 正确的方法?
谷歌搜索后,搜索此网站以及jQuery发现没有简单的方法来validation时间价值。
根据事物的外观,它建议使用addMethod并使用regexpess值来检查时间应该是什么样的。
但是决定查看jquery.validate.js
以及如何检查dateISO,它看起来要容易得多,所以我复制了与dateISO相关的所有数据并将其称为timeISO并更改了字符串以validation时间并使用以下内容时间刺痛
^([01]\d|2[0-3]):[0-5]\d:[0-5]\d$
是否有一些理由不应该修改jquery.validate.js
并按照我的方式进行操作? 只是有点担心,因为我在谷歌和这个论坛上的所有搜索从未建议过。
您可以向jQuery.validate
添加自定义方法。 可能有一个可用,但我编码这个24小时时间格式validation作为一个例子:
$.validator.addMethod("time24", function(value, element) { if (!/^\d{2}:\d{2}:\d{2}$/.test(value)) return false; var parts = value.split(':'); if (parts[0] > 23 || parts[1] > 59 || parts[2] > 59) return false; return true; }, "Invalid time format.");
小提琴
文档 。
您还可以在单个正则表达式( 源 )中对其进行总结:
([01]?[0-9]|2[0-3])(:[0-5][0-9]){2}
如果您使用的是HTML5,则可以使用pattern
属性:
小提琴
如果您需要与旧版浏览器兼容,请继续使用jQuery.validate
方法:
$.validator.addMethod("time24", function(value, element) { return /^([01]?[0-9]|2[0-3])(:[0-5][0-9]){2}$/.test(value); }, "Invalid time format.");
演示
我知道已经有一段时间了,但我认为最好的解决方案是检查additional-methods.js库。 (您可以从http://jqueryvalidation.org/下载)
有两种validation: “time12h”和“time” 。
修改插件核心使得更新到插件的新版本变得更加困难,而无需替换您的修改,并且很少是个好主意。
我建议您将自定义代码放在单独的文件中,而不是更改核心代码。