首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用dd.mm.yyyy验证addMethod格式化输入文本的日期addMethod

用dd.mm.yyyy验证addMethod格式化输入文本的日期addMethod
EN

Stack Overflow用户
提问于 2013-10-10 11:37:24
回答 2查看 8.4K关注 0票数 2

在验证输入的日期时,这个addMethod确实有问题。它没有正确地测试正则表达式,我认为它可能是用错误编写的。日期应该是这样的格式: dd.mm.yyyy。请帮帮我..。

代码语言:javascript
运行
复制
$(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:

代码语言:javascript
运行
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-10 11:51:07

代码语言:javascript
运行
复制
$(function () {
    $.datepicker.setDefaults({
        dateFormat: 'dd/mm/yy'
    });
});

Then to bind it to the input element:
$(function () {
    $("#StartDate").datepicker();
});

信贷Amalea

票数 -1
EN

Stack Overflow用户

发布于 2015-01-23 10:53:28

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

代码语言:javascript
运行
复制
$.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."
);

然后在你的表格上加上:

代码语言:javascript
运行
复制
$('#myForm')
    .validate({
        rules : {
            myDate : {
                Mytypedate: true
            }
        }
    })
;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19294760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档