gpt4 book ai didi

javascript - 在 Jquery.validate.js 中编辑日期 dd/mm/yyyy 验证的函数

转载 作者:太空宇宙 更新时间:2023-11-04 16:18:48 24 4
gpt4 key购买 nike

我在验证系统 (asp.net) 中的日期字段时遇到问题。我已经用注释标准化了类中的字段:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]

它工作得很好,向我显示了我想要的字段,但是当我尝试编辑时,表单向我显示如下错误:

The field [field] must be a date.

所以我无法保存版本,因为它没有通过 jquery 验证器。

我已将 C# 注释标准化为 dd/mm/yyy,但 jquery 设置为 mm/dd/yyyy。

在我的测试过程中,我发现(我猜)该文件之一是对表单中的日期字段进行验证的文件:

  • jquery.validate.js
  • jquery.validate.unobtrusive.js

我发现这一点是因为当我从页面中删除此脚本时,验证不起作用,但我也不确定此脚本是否调用其他脚本。

在 jquery.validate.js 中我发现了这个函数,我尝试以多种方式编辑它,但没有成功:

    date: function( value, element ) {
return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString());
},

dateISO: function( value, element ) {
return this.optional(element) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(value);
},

我不确定我修改的内容是否正确,所以我需要帮助。

由于我不知道要修改什么,这里是 jquery.validate.js 的链接。

https://github.com/KaioMartins/PersonalLibrary/blob/master/PersonalLibrary/Scripts/jquery.validate.js

最佳答案

您可以编写自己的解析器函数,如 @RobG 建议的那样,或者如果您不在页面中使用它,则可以修改原始解析器函数。我使用旧版本的 Globalize 插件,并且有一些功能可以更改验证插件的“语言”,如 1.234,56 格式的数字(而不是标准的 1,234.56 英语格式)等等...

根据您的情况,您可以使用:

$.validator.methods.date = function (value, element) { /* place your function here */ }

覆盖默认行为。

您可以在此处找到 dd/MM/yyyy 的 reg expr: Regex to validate date format dd/mm/yyyy

编辑:你在哪里做这个?好的,在您自己的 javascript 代码中,在加载 jquery.validate 插件之后。您也可以等待 onReady 事件。

<script src="jquery.validate.min.js"></script>
<script>
$(function(){
$.validator.methods.date = ...
})
<script>

关于javascript - 在 Jquery.validate.js 中编辑日期 dd/mm/yyyy 验证的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40834412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com