手动触发datepicker onselect事件

时间:2013-09-24 10:50:50

标签: javascript jquery jquery-ui datepicker

有谁能告诉我你如何触发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 个答案:

答案 0 :(得分:18)

您可以在日期设置之后立即在日期选择器上触发click

代码:

$(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/

答案 1 :(得分:2)

最佳解决方案

var inst = $.datepicker._getInst($("#date")[0]);
$.datepicker._get(inst, 'onSelect').apply(inst.input[0], [$("#date").datepicker('getDate'), inst]);

答案 2 :(得分:1)

我从datepicker.js文件的源代码中获取了这个。请注意,this应替换为您的input元素(而不是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]);
}

答案 3 :(得分:1)

这是我发现的唯一适用于datetimepicker

的解决方案

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