如何验证结束日期大于开始日期?

发布于 2024-12-09 14:57:49 字数 395 浏览 0 评论 0原文

我使用另一个答案来解决我的问题。

jQuery.validator.addMethod("greaterThan", function(value, element, params) {
    return new Date(value) > new Date($(params).val());
}, 'Must be greater than {0}.');

但是,我的日期字段是一个文本框,格式类似于 dd-mm-yyyy。如何更改此代码以便验证有效?

I used another answer to solve my problem.

jQuery.validator.addMethod("greaterThan", function(value, element, params) {
    return new Date(value) > new Date($(params).val());
}, 'Must be greater than {0}.');

However, my date field is a textbox and formatted like dd-mm-yyyy. How do I change this code so that the validation works?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

撧情箌佬 2024-12-16 14:57:49

您首先必须解析文本框值以从中获取日期。最好的方法是正则表达式:

您的验证器函数体应该是(内联注释中的解释):

// date parsing regular expression
var rx = /([0-2]?\d|3[01])-(0?\d|1[0-2])-(\d{4})/i;

// get textbox value
var val = $(params).val();

// default date
var date = new Date();

// parse date if entered correctly
if (rx.test(val))
{
    // get date parts
    var result = rx.exec(val);

    // generate date instance
    date = new Date(result[3], result[2]-1, result[1]);
}

// validate dates
return new Date(value) > date;

You will first have to parse your textbox value to get date from it. Best way would be regular expressions:

Your validator function body should be (explanations in inline comments):

// date parsing regular expression
var rx = /([0-2]?\d|3[01])-(0?\d|1[0-2])-(\d{4})/i;

// get textbox value
var val = $(params).val();

// default date
var date = new Date();

// parse date if entered correctly
if (rx.test(val))
{
    // get date parts
    var result = rx.exec(val);

    // generate date instance
    date = new Date(result[3], result[2]-1, result[1]);
}

// validate dates
return new Date(value) > date;
遇见了你 2024-12-16 14:57:49
function ValidateEndDate() {
        var startDate = $("txtfromdate").val();
        var endDate = $("txttodate").val();
        if (startDate != '' && endDate !='') {
            if (Date.parse(startDate) > Date.parse(endDate)) {
                $("txttodate").val('');
                alert("Start date should not be greater than end date");
            }
        }
        return false;
    }
function ValidateEndDate() {
        var startDate = $("txtfromdate").val();
        var endDate = $("txttodate").val();
        if (startDate != '' && endDate !='') {
            if (Date.parse(startDate) > Date.parse(endDate)) {
                $("txttodate").val('');
                alert("Start date should not be greater than end date");
            }
        }
        return false;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文