修改jQueryValidation里默认的验证方法
方法 修改 默认 验证 jQueryValidation
2023-06-13 09:14:32 时间
在最近做的一个项目中,使用jQueryValidation验证日期,遇到的问题和一个没有预料到的情况是,在ASP.NETMVC3的项目中,对于<inputtype="date"data-val="true"/>的元素,如果调用form的valid方法验证form,虽然我没有添加日期验证的设置,仅仅type="date",但其依然调用了日期验证逻辑来验证日期格式是否正确。这本来是个不错的行为,但问题在于,其支持的日期格式有限,阅读jQueryValidation的代码会知道(当然,文档中也有说明),对于“date”,日期验证只是利用Javascript内置的处理来验证,反映到代码里,就是看newDate(日期字符串)能否成功。在我的电脑中,输入日期"9/5/2012"可以验证通过,但“2012-9-5”验证失败,后者显然也是一种正确的格式。我需要改变或者改善这种行为。如何做?
当然,我们可以修改jQueryValidation的源代码,但是首先,我引用的是CDN上的代码,其次,作为一个public的库,我想还是尽量不要自己去改动,日久天长,可能我们已经忘记了对它的修改,而官方更新新版本时,我们弄下来更新,结果就把我们自己的修改给覆盖了。更好的办法,是打补丁,从外部把date的验证函数替换成我们自己的。这里或许要感谢Javascript的OO还不是那么彻底,并没有把那些内置验证方法整成protected/private,看了源代码之后,替换的方法很简单,在引用jQueryValidation的源码之后,再这样替换:
复制代码代码如下:
当然,我们可以修改jQueryValidation的源代码,但是首先,我引用的是CDN上的代码,其次,作为一个public的库,我想还是尽量不要自己去改动,日久天长,可能我们已经忘记了对它的修改,而官方更新新版本时,我们弄下来更新,结果就把我们自己的修改给覆盖了。更好的办法,是打补丁,从外部把date的验证函数替换成我们自己的。这里或许要感谢Javascript的OO还不是那么彻底,并没有把那些内置验证方法整成protected/private,看了源代码之后,替换的方法很简单,在引用jQueryValidation的源码之后,再这样替换:
$.validator.methods.date=function(value,element)
{
//Date.parse函数源自另外一个处理日期的库
returnthis.optional(element)||Date.parse(value)!=null;
};
此外替换默认的message,也可以用同样的办法,比如:
$.validator.messages.date="hey,youenteredaninvaliddate"
当然,处理messages有其他支持的更好的办法,这在jQueryValidation的全球化和本地化的说明中有提及。
相关文章
- 50个VSCode的快捷键,肯定有你需要的那个!(包含修改默认快捷键的方法)
- 向量取子集和元素的修改方法
- MySQL实现年龄计算的方法(mysql年龄计算)
- Linux下查看磁盘空间的方法(查看磁盘空间linux)
- Linux下修改环境变量的方法(修改环境变量linux)
- Oracle 快速修改默认值的方法(oracle修改默认值)
- Linux下修改文件用户组的方法(linux修改文件用户组)
- Oracle实现数据精准取小时操作的方法详解(oracle取小时)
- Linux 分辨率调整方法详解,让您的显示器画面更清晰!(怎么修改linux分辨率)
- 修改MySQL默认字符编码的方法(修改mysql默认编码)
- 文件在Linux中查看txt文件的简单方法(linux查看txt)
- 的五种方法五种方法解决Oracle修改视图问题(oracle修改视图)
- 深入了解Linux服务器网络接口的使用方法(linux服务器网口)
- CRT连接Oracle数据库的方法简介(crt怎么连oracle)
- Oracle 数据库中修改列备注的方法探究(oracle 修改列备注)
- 结构Oracle数据库中修改两表结构的方法(oracle修改两表)
- 使用eAccelerator加速PHP代码的方法
- C#小数位数保留的方法集锦
- SQLServer2005/2008用户数据库文件默认路径和默认备份路径修改方法
- SQL2000中的默认sa帐号的修改与删除方法
- VS2010、VS2008等项目的默认浏览器修改方法(图文)
- androidWakeLock使用方法代码实例
- 修改mysql默认字符集的两种方法详细解析
- sql表连接查询使用方法(sql多表连接查询)
- Linux命令行修改IP、网关、DNS的方法
- PHP简单实现“相关文章推荐”功能的方法
- Linux下自动备份MySQL的方法
- javascript批量修改文件编码格式的方法