使用 jQuery 验证 addMethod 设置输入文本的日期格式 dd.mm.yyyy

2023-12-06

我在使用这个 addMethod 来验证输入的日期时遇到了真正的麻烦。它没有正确测试正则表达式,我认为它可能写有错误。日期应采用以下格式: dd.mm.yyyy 。请帮忙...

$(function() {

    $(".msgBtn").click(function() {

        var isValid = true;

        if (!$("#startDate").valid()) {
            isValid = false;
        }
        if (!$("#endDate").valid()) {
            isValid = false;
        }

        if (!isValid)
            return;

        $("form#csr-message").submit(); //save button 
    });
             });
$.validator.addMethod(
                "formatdata",
                function(value, element) {
                    var i = /(?:0[1-9]|[12][0-9]|3[01])\.(?:0[1-9]|1[0-2])\.(?:19\d\d|20\d\d)/;
                    return this.optional(element) || i.test(value);
                }, "Incorrect format data");

var validator = $("#csr-message")
        .validate(
                {
                    rules : {
                        startDate : {
                            formatdata : true

                        },
                        endDate : {
                            formatdata : true
                        }
                    },
                    messages : {
                        startDate : {
                            formatdata : jQuery
                                    .format("Start date has incorrect format!"),
                        },
                        endDate : {
                            formatdata : jQuery
                                    .format("End date has incorrect format!"),
                        }
                    }
                }

html:

<form method="post" action="<%=RelativeActionURL.rewrite(formAction)%>" id="csr-message">
...

<input type="text"  id="startDate" name="startDate"  placeholder="dd.mm.yyyy"  value="<fmt:formatDate pattern="dd.MM.yyyy" value="${messageDetails.startDate}" />"/>
...

<input type="text"  id="endDate" name="endDate" placeholder="dd.mm.yyyy"  value="<fmt:formatDate pattern="dd.MM.yyyy" value="${messageDetails.endDate}"/>"/>
...

</form>

您可以使用 addMethod 函数创建自己的自定义验证方法。假设您想验证“dd/mm/yyyy”:

$.validator.addMethod(
    "Mytypedate",
    function(value, element) {
        // put your own logic here, this is just a (crappy) example
        return value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);
    },
    "Please enter a date in the format dd/mm/yyyy."
);

然后在您的表单上添加:

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

使用 jQuery 验证 addMethod 设置输入文本的日期格式 dd.mm.yyyy 的相关文章

  • 正则表达式库基准

    我最近一直想知道正则表达式实现的性能 并且很难想出很多有用的信息 它很容易对浏览器 javascript 正则表达式性能进行基准测试 网上有很多工具 Chrome 和 Opera 中的 javascript 正则表达式实现几乎摧毁了所有其他
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相
  • 在一个项目中使用多个 Javascript 框架?

    在一个项目中使用多个框架是好是坏 还是不好 因为它会变得混乱 一团糟 并且加载时间可能会更长 100 K 真的很重要吗 或者你应该坚持使用一个 通常最好选择一件事并坚持下去 原因有很多 更少的依赖 降低复杂性 更容易维护 更快的加载时间 不
  • 如何使用正则表达式在 Java 中检查确切的电话号码

    你好 我是正则表达式的新手 我不知道我在做什么 这就是我寻求帮助的原因 我有以下电话号码 359878123456 我需要检查该电话号码是否符合条件 359 是准确的扩展名 第二个 2 个数字是操作员号码和以下 3 个数字之一 87 88
  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • Java正则表达式:为什么数字[0-9]、逗号等不是unicode?

    class Test public static void main String args String regex p L System out println 0 matches regex 上面的代码打印 false 但我期待 tr
  • 如何编写 Clojure 宏来从字符串创建正则表达式?

    我正在创建一个方便的宏 部分便利在于可以仅使用字符串来指定正则表达式 而不是使用 re 表示法 我无法弄清楚的一部分是如何让宏获取字符串并将其重写为 Clojure 正则表达式 例如 生成 re 符号 我认为这是一个语法 转义问题 我的第一
  • Jquery:将链接标记为已访问而不打开它们?

    我无意仅仅更改链接 我听说这是不可能的 但如果不是 我很想知道如何更改 如果需要的话 我可以将其添加到浏览器历史记录中 我想遍历所有 a 位于页面上并将其状态更改为已访问 例如 a each function mark as visited
  • jquery select 如果 option.value 等于某个值,则标记为选中

    我有一些关于 jquery 选择的问题 就我而言 如果option value等于某物 标记 aselected为了它 在线代码在这里 http jsfiddle net WnEfJ 再次重复代码 它引起了Uncaught TypeErro
  • RegisterForEventValidation 只能在 Render 期间调用

    我有一个将从 jquery ajax 调用的 webmethod WebMethod public string TestMethod string param1 string param2 StringBuilder b new Stri
  • mouseover 函数在队列中多次出现

    我有这段代码 可以在鼠标悬停时使一个 div 淡出另一个 div 并在光标离开查看区域时淡出 例子 http jsfiddle net 3vgbemgu http jsfiddle net 3vgbemgu under hover func
  • 无法将数据加载到 mvc 4 中的 jTable 中

    好的 我第一次尝试 jTable 我可以加载表 但这对我没有什么好处 因为它不会加载我的任何数据 当我调试程序时 我想要的表中的所有行都存储在我的列表中 因此我很困惑为什么当我运行应用程序时会弹出一个对话框 显示 与服务器通信时发生错误 H
  • jQuery,REAL:不是等价的运算符?

    此代码行选择任何类名不是 id 和 quantity 的 div 内的所有子输入 div item gt div not id quantity gt input live keydown function event 执行相反操作的代码行
  • 动画进度元素值

    我有一个progress元素 该元素如下所示 div class container div div div
  • IE 中的 jQuery .width(val) 错误 - 无效参数

    通过ajax加载内部div book table 后 我想调整正文的宽度以适应更大的内容 var new width parseInt book table css width 407 body width new width 在 FF 和
  • 淡出和循环一组 div 的最佳方式

    假设我有以下 div div class a You are funny div div class b You are smart div div class c You are cool div 最好的展示方式是什么div a持续 5
  • 如何通过jquery更改元素的类名

    div class bestAnswerControl div class IsBestAnswer div div 我想补充一下 bestanswer some attribute 我想更换class IsBestAnswer div 到
  • 使用正则表达式查找并替换(批处理.BAT)

    我想在多个文本文件中进行查找 替换 如何使用 BAT 实现自动化 我还需要正则表达式 示例 查找
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编

随机推荐