首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在修改Pikaday默认值

正在修改Pikaday默认值
EN

Stack Overflow用户
提问于 2015-10-23 19:09:33
回答 1查看 2.9K关注 0票数 0

我有一个要设置日期的字段。这个字段可以有一个YYYYMMDD格式的默认值,并且它正在被转换为正确的DD.MM.YYYY格式,操作员可以理解。不要问我为什么,这是一个古老的系统,不,我不能重写它,因为它使用了大的后端。

我只需要将简单的日期选择器添加到这些字段中。我选择了Pikaday,它轻量级且足够简单,可以完成这个特定的任务。我的典型用例如下所示:

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

原始的代码片段是input标记。剩下的就是我的新datepicker功能。

现在,问题出在哪里。问题在于缺省值。假设默认值为20151023。customType属性应该使日期为23.10.2015,但下面的Pikaday代码片段使日期为20.03.1023。我也不知道原因。我不太理解javascript,但我猜onSelect参数只是一种匿名回调函数,只有在用户单击日期选择器按钮时才会调用。

有什么建议吗?

谢谢,JiKra

编辑:

似乎有一个不同的问题。如果有任何来自后端的值,它的值格式类似于20151023。有一个古老的javascript文件,它有一些功能,它解析这个值并创建一个合适的格式23.10.2015。问题是我的Pikaday构造函数是在那个古老的解析器之前被调用的。即使我在Pikaday调用之前使用jazZRo的promising snippet来修改值,这个古老的解析器也会崩溃,因为它需要YYYYMMDD格式。所以,我需要的是要么在老解析器之后调用我的东西,要么禁止Pikaday构造函数中的onSelect回调函数在页面加载时不运行。

这有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-23 20:46:48

最简单的解决方案是在Pickaday使用输入值之前使用momentjs对其进行转换:

代码语言:javascript
复制
(function() {
    var moment = window.moment(document.getElementById('datepicker').value, 'DDMMYYYY');
    document.getElementById('datepicker').value = moment.format('YYYY-MM-DD');
})();

请参阅http://jsfiddle.net/05fyr368/3/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33300899

复制
相关文章

相似问题

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