10

谁能告诉我如何触发 datepicker 的 onselect 事件?我的代码运行良好(根据 datepickers altfield 的值从数据库中提取一些数据),但是当页面加载时,它不会在当前日期触发 onselect 事件,也不会显示任何内容;所以我想手动完成。

<script>
     $( "#datepicker" ).datepicker
    (
    {
          altField: '#sheet',
          onSelect: function load() {
            $(document).ready(function() {
                    $.ajax({
                    type: 'POST',
                    url: 'test.php',
                    data: {sheetid: $('#sheet').val()},
                    success: function(data)
                    {
                        $("#content").html(data);
                    }
                });

        });
        },
          firstDay: 1});
    </script>
4

4 回答 4

19

click您可以在日期集之后立即触发日期选择器上的 a 。

代码:

$(document).ready(function () {
    $("#datepicker").datepicker({
        altField: '#sheet',
        onSelect: function(date) {
            alert(date);
        },
        firstDay: 1
    });

    $('#datepicker').datepicker("setDate", new Date(2013,09,22) );
    $('.ui-datepicker-current-day').click(); // rapresent the current selected day

});

演示:http: //jsfiddle.net/IrvinDominin/DynuW/

于 2013-09-24T11:05:30.493 回答
2

我从 datepicker.js 文件的源代码中获取了这个。请注意,this应替换为您的输入元素(不是 jquery 对象,实际的 dom 元素)。就我而言,我是从 keydown 事件中调用它的。

// this is SUCH a hack.  We need to call onselect to call any
// specific validation on this input.  I stole this from the datepicker source code.
var inst = $.datepicker._getInst(this),
onSelect = $.datepicker._get(inst, "onSelect");
if (onSelect) {
    dateStr = $.datepicker._formatDate(inst);
    onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
}
于 2014-02-14T18:02:25.823 回答
2

最佳解决方案

var inst = $.datepicker._getInst($("#date")[0]);
$.datepicker._get(inst, 'onSelect').apply(inst.input[0], [$("#date").datepicker('getDate'), inst]);
于 2015-05-26T08:00:24.650 回答
2

这是我发现的唯一适用于 datetimepicker 的解决方案

var $calendar =$('#from');
$.datepicker._getInst($calendar[0]).settings.onSelect()//or onClose or any event 

于 2018-04-04T12:58:57.000 回答