daterangepicker 回调根本不起作用

daterangepicker callback isn't work at all

我的 daterangepicker(来自 http://tamble.github.io/jquery-ui-daterangepicker/)的回调函数运行 遇到了很大的麻烦

我没有看到任何警报。

我在日期范围选择器 UI 的底部有一个 'apply' 按钮。我按应用,然后找到我选择的主机日期,但没有显示应有的警报。

这是我完成的代码(非常简单的代码):

// will host dates in callback
                var startDate;
                var endDate;
                $('#daterangepicker').daterangepicker(
                  {
                      format: 'YYYY-MM-DD',
                      startDate: '2013-01-01',
                      endDate: '2013-12-31'
                  },
                  function (start, end) {
                      alert("hey");
                  }
                );

在此先感谢您的帮助

编辑:

// will host dates
                var startDate;
                var endDate;
                // Show multidatetime picker
                // more infos here: http://tamble.github.io/jquery-ui-daterangepicker/
                $('#daterangepicker').daterangepicker(
                  {
                      onChange: function (start, end) { alert('change : ' + start + ' - ' + end) },
                      format: 'YYYY-MM-DD',
                      startDate: '2013-01-01',
                      endDate: '2013-12-31'
                  }
                );

这是我测试过的,但 startDate 和 endDate 未定义。

编辑 2: 这是我在 EricMathieu

的帮助下 100% 完成的最终代码
// Show multidatetime picker
                // more infos here: http://tamble.github.io/jquery-ui-daterangepicker/
                $('#daterangepicker').daterangepicker(
                  {
                      format: 'YYYY-MM-DD',
                      startDate: '2013-01-01',
                      endDate: '2013-12-31'
                  });
...
var tempValues = JSON.parse($('#daterangepicker').val());
alert(tempValues.start);
alert(tempValues.end);

如果您使用 onChange 回调,则必须读取存储在 #daterangepicker 中的值,您的 startend 变量不会自动读取得到人口。

获取开始/结束值的一种简单方法是在 onChange 函数中解析开始和结束值(来自 JSON):

var startDate;
var endDate;
// Show multidatetime picker
// more infos here: http://tamble.github.io/jquery-ui-daterangepicker/
$('#daterangepicker').daterangepicker(
    {
        onChange: function () {
            var tempValues = JSON.parse($('#daterangepicker').val());
            alert('change : ' + tempValues.start + ' - ' + tempValues.end)
        },
        format: 'YYYY-MM-DD',
        startDate: '2013-01-01',
        endDate: '2013-12-31'
     }
);

你必须这样调用:

function(start, end, label) {

 console.log(start.toLocaleString() + end.toLocaleString() + label);
}

所以整个例子看起来像:

$('#date_range').daterangepicker({
        timePicker: false, timePickerIncrement: 30,
        //format: 'DD-MM-YYYY hh:mm:ss',
        format: 'DD-MM-YYYY',
        timePicker12Hour: false, 
        opens: 'left',
        locale: { cancelLabel: 'Clear' },
        separator: ' to '}, 
        function(start, end, label) {
console.log(start.toLocaleString() + end.toLocaleString() + label);
}
 });