簡體   English   中英

未來日期提出錯誤jquery ui datepicker

[英]future dates raise error jquery ui datepicker

我有jquery ui datepicker的腳本

var date = new Date(new Date().setDate(new Date().getDate() - 1));


$('.date').datepicker({
    dateFormat: 'dd-mm-yy',
    defaultDate: date,
    minDate: Date.parse("1900-01-01"),
    maxDate: Date.parse("2100-01-01"),
});

在我看來,我有:

@Html.TextBoxFor(m => m.EndDate, new { @class = "date" })

它適用於昨天和之前的日期,但如果我選擇今天或更高的日期,則會引發錯誤

在此輸入圖像描述

怎么了?

編輯

GOT IT這是關於我的格式。 我希望它是dd-mm-yy,但是當我選擇例如15-05-2016時,它表示一年中沒有15個月。 我怎么解決這個問題?

Date.parse()返回自1970年1月1日以來日期字符串的毫秒數, minDatemaxDate可以接受一個數字,但它以這種方式使用:

數字 :從今天起的幾天。 例如, 2表示從今天開始的兩天, -1表示昨天

因此,驗證期待您輸入之間的日期2208988800000在過去的日子和4102444800000在以后的日子里 這些日期非常遙遠,而且對於Date來說太大了。

要修復它,請改用new Date()

$('.date').datepicker({
    dateFormat: 'dd-mm-yy',
    defaultDate: -1,
    minDate: new Date("1900-01-01"),
    maxDate: new Date("2100-01-01")
});

的jsfiddle

我自己沒試過,但它可以解決這個問題。

改變這樣的日期格式

dateFormat: 'mm-dd-yy',

或者只是刪除該行,因為默認的dateFormat是mm/dd/yy

由於我得到不顯眼的驗證需要為不同的格式重載, 這個答案幫助了我。

$.validator.addMethod('date',
function (value, element) {
    if (this.optional(element)) {
        return true;
    }

    var ok = true;
    try {
        $.datepicker.parseDate('dd-mm-yy', value);
    }
    catch (err) {
        ok = false;
    }
    return ok;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM