【问题标题】:Creating a date range fields with pikaday datepicker使用 pikaday datepicker 创建日期范围字段
【发布时间】:2014-06-12 11:47:38
【问题描述】:

我正在尝试使用 pikaday 日期选择器,我试图避免使用 jquery 日期选择器,因为它具有依赖性和大量图像,但我无法使用 pikaday 实现我想要的。

我在表单中有一个 from to 字段,可以在 to 字段中选择的日期不应该超过 from 字段。我尝试如下,但它不起作用。

var picker = new Pikaday({
    field: document.getElementById('start')
});
var picker2 = new Pikaday({
    field: document.getElementById('end'),
    minDate: new Date(document.getElementById('start').value)
});

纯 javascript 解决方案对我来说更好, 任何人都可以指导我解决这个问题吗?

【问题讨论】:

    标签: javascript datepicker pikaday


    【解决方案1】:

    pickaday control选择新日期时,您可以使用setMinDatesetMaxDate方法:

    var picker = new Pikaday({
        field: document.getElementById('start'),
        onSelect: function() {
            picker2.setMinDate(this.getDate());
        }
    });
    var picker2 = new Pikaday({
        field: document.getElementById('end'),
        onSelect: function() {
            picker.setMaxDate(this.getDate());
        }
    });
    

    jsfiddle

    【讨论】:

    • 谢谢你的回答,我已经接近这个了,但我不知道这种 pikaday 的方法,比如picker2.setMinDate,你从哪里读到这个方法的......?
    • @vignesh_ms 我很高兴它有帮助:) 只需单击答案中的链接。它将您链接到 github 页面。
    • 经过太多谷歌搜索后,我想出了这个答案并意识到我应该很好地阅读文档:D。谢谢@A1rPun
    【解决方案2】:

    我扩展了@A1Prun 的答案以符合我的确切要求,这是更新后的答案,希望对某人有所帮助。

    var picker = new Pikaday({
        field: document.getElementById('start'),
        minDate: new Date(),
        onSelect: function() {
            picker2.setMinDate(new Date(this.getDate().getTime()+parseInt(24*60*60*1000)));
            if(Number(new Date(this.getDate()))>Number(new Date(document.getElementById('end').value)))
            {
                document.getElementById('end').value="";
            }
        }
    });
    var picker2 = new Pikaday({
        field: document.getElementById('end'),
    });
    

    【讨论】:

      猜你喜欢
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多