簡體   English   中英

Pikaday默認值正在修改

[英]Pikaday default value is being modified

我有一個要設置日期的字段。 此字段的默認值可能為YYYYMMDD格式,並且已轉換為正確的格式DD.MM.YYYY,這對於操作員來說是可以理解的。 不要問我為什么,這是一個古老的系統,不,因為它使用了大型后端,所以我無法重寫它。

我只需要向這些字段添加簡單的datepicker。 我選擇了Pikaday,它輕巧,簡單,可以完成此特定任務。 我的典型用例如下所示:

<input type="text" id="datepicker" value="20150515" customType="date">
<img src="img/icon.gif" id="datepicker-button" />

<link rel="stylesheet" href="css/pikaday.css">
<link rel="stylesheet" href="css/site.css">
<script src="js/moment.min.js"></script>
<script src="js/pikaday.js"></script>
<script>
    var picker = new Pikaday(
    {
        field: document.getElementById('datepicker'),
        trigger: document.getElementById('datepicker-button'),
        firstDay: 1,
        yearRange: [1900,2020],
        onSelect: function() {
            var date = document.createTextNode(this.getMoment().format('DD.MM.YYYY') + ' ');
            document.getElementById('selected').appendChild(date);
        }
    });
    field.parentNode.insertBefore(picker.el, field.nextSibling);
</script>

原始代碼是輸入標簽。 剩下的就是我的新日期選擇器功能。

而現在,出了什么問題。 問題是默認值。 假設默認值為20151023。customType屬性的正確日期應為2015年10月23日,但以下Pikaday代碼段的日期應為20.03.1023。 我不知道為什么 我不太了解javascript,但我猜onSelect參數只是一種匿名回調函數,僅當用戶單擊datepicker按鈕時才被調用。

有什么建議嗎?

謝謝,吉克拉

編輯:

似乎有一個不同的問題。 如果后端有任何值,則采用20151023之類的值格式。還有一個帶有某些功能的古老javascript文件,可以解析該值並創建正確的格式2015年10月23日。 問題是我的Pikaday構造函數在那個古老的解析器之前被調用。 即使當我在Pikaday調用之前使用jazZRo的有希望的代碼段修改值時,那個古老的解析器也嚇壞了,因為它期望使用YYYYMMDD格式。 因此,我需要的是在古老的解析器之后調用我的東西,或者禁止Pikaday構造函數中的onSelect回調函數不在頁面加載時運行。

那可能嗎?

最簡單的解決方案是在Pickaday使用輸入之前,使用momentjs轉換輸入的值:

(function() {
    var moment = window.moment(document.getElementById('datepicker').value, 'DDMMYYYY');
    document.getElementById('datepicker').value = moment.format('YYYY-MM-DD');
})();

參見http://jsfiddle.net/05fyr368/3/

暫無
暫無

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

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