本文介绍了使用jQuery验证addMethod格式化日期dd.mm.yyyy来输入文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am having real trouble with this addMethod for validating a date from an input. It doesn't test the regex properly and i think it may be written with errors. The date should be in this format: dd.mm.yyyy . Please help...

$(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>

推荐答案

$(function () {
    $.datepicker.setDefaults({
        dateFormat: 'dd/mm/yy'
    });
});

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

信用阿玛拉(Amalea)

这篇关于使用jQuery验证addMethod格式化日期dd.mm.yyyy来输入文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-24 04:54