【问题标题】:How can I get both dates from daterange picker?如何从日期范围选择器中获取两个日期?
【发布时间】:2016-05-10 18:18:37
【问题描述】:

我有一个 html 页面,它使用来自以下位置的简单 DateRange 输入:BeatPicker/demos 我可以从输入中获取 StartDate,但似乎无法获取 EndDate。使用单个输入元素输入两个日期。

<input type="text" id="demo" data-beatpicker="true" data-beatpicker-position="['*','*']" data-beatpicker-range="true"/>

<button onclick="myFunction()">Click me</button>

<script>
function myFunction() {
alert(demo.value);  // gives Start Date
alert(demo.startDate);  // gives Start Date

// below show undefined
//var x = myDatePicker.getSelectedEndDate;
//var x = document.getElementById("demo").getSelectedEndDate.value];
//alert(x);
}
</script>

BeatPicker Documentation

【问题讨论】:

    标签: javascript jquery date-range daterangepicker


    【解决方案1】:

    如果您没有选择日期,那么您的功能将无法按预期工作。

    我会使用日期选择器的select 事件来实际获取值。

    根据 BeatPicker 文档,获取开始日期和结束日期的方法是 getSelectedStartDategetSelectedEndDate。由于您使用了声明式语法,您还可以通过data-beatpicker-id="myPicker" 为您的日期选择器提供id。如果这样做,您可以通过该 ID 引用日期选择器。

    更新你的元素声明:

    <input data-beatpicker-id="myPicker" type="text" id="demo" data-beatpicker="true" data-beatpicker-position="['*','*']" data-beatpicker-range="true" />
    

    尝试更改您的函数以使用这些方法:

    function myFunction(){
      var startDt = myPicker.getSelectedStartDate();
      var endDt = myPicker.getSelectedEndDate();
    
      console.log(startDt, endDt);
    }
    

    在演示页面的底部,您可以看到一个挂钩到数据选择器事件的示例。使用selectchange 事件比按钮调用的函数更好:

        var statusGenerator = function (text) {
            var statusElem = $(".status");
            var child = $("<span></span>").text(text);
            statusElem.append(child);
        };
    
        myDatePicker.on("select", function (data) {
            myFunction();
            statusGenerator(data.string + " selected")
        });
    
        myDatePicker.on("change", function (data) {
            myFunction();
            statusGenerator("Date picker changed current date: "+data.string);
        });
    

    【讨论】:

    • 非常感谢!它工作完美。我尝试使用 getSelectedEndDate() 但我不知道如何将其用作“函数”,并且由于末尾的“()”而出现错误。感谢您向我展示这是如何工作的。我希望这对其他人有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2019-07-04
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多