在jqueryui datepicker内联模式中获取所选日期

时间:2009-10-26 13:02:42

标签: jquery-ui calendar

我正在尝试使用jqueryui datepicker。我想使用内联模式。

我想知道如何在用户选择日期时获取所选日期。在哪里获得以及如何获得?

3 个答案:

答案 0 :(得分:62)

您可以使用getDate函数检索日期:

$("#datepicker").datepicker( 'getDate' );

该值作为JavaScript Date对象返回。

如果要在用户选择日期时使用此值,可以使用onSelect事件:

$("#datepicker").datepicker({
   onSelect: function(dateText, inst) { 
      var dateAsString = dateText; //the first parameter of this function
      var dateAsObject = $(this).datepicker( 'getDate' ); //the getDate method
   }
});

在这种情况下,第一个参数是选定的Date作为String。使用parseDate将其转换为JS Date Object。

有关完整的jQuery UI DatePicker参考,请参阅http://docs.jquery.com/UI/Datepicker

答案 1 :(得分:19)

$(document).on("change", "#datepickerdiv", function () {
         alert($(this).val())


    })

这是Jquery中最简单的答案。

答案 2 :(得分:1)

我尝试使用关闭event,但它也曾用于在日历打开时触发,我点击了scree上的其他位置。最终日历会丢失focusclose event。所以我找到了这个;

  onClose: function (dateText, inst) {
            function isDonePressed() {
                return ($('#ui-datepicker-div').html().indexOf('ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all ui-state-hover') > -1);
            }
            if (isDonePressed()) {
                var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
                $(this).datepicker('setDate', new Date(year, month, 1));
            }
        }