【问题标题】:Trigger function when date is selected with jQuery UI datepicker使用 jQuery UI datepicker 选择日期时触发函数
【发布时间】:2012-07-21 14:04:33
【问题描述】:

当我在 jQuery UI 日期选择器上选择一个选定的日期时如何触发 onSelect 事件?

【问题讨论】:

    标签: jquery events datepicker


    【解决方案1】:

    工作演示http://jsfiddle.net/YbLnj/

    文档:http://jqueryui.com/demos/datepicker/

    代码

    $("#dt").datepicker({
        onSelect: function(dateText, inst) {
            var date = $(this).val();
            var time = $('#time').val();
            alert('on select triggered');
            $("#start").val(date + time.toString(' HH:mm').toString());
    
        }
    });
    

    【讨论】:

    • 为什么 'onSelect' 没有在 datepicker API 上列为事件??
    • @PabloKarzin 这里提到了api documentation :) => api.jqueryui.com/datepicker 和这里=> api.jqueryui.com/datepicker/#option-onSelect
    • 是的@Tats_innit,但不是事件。它被归类为一个选项。也许这并没有错,但作为开发人员,我喜欢将其视为一个事件
    【解决方案2】:

    使用以下代码:

    $(document).ready(function() {
        $('.date-pick').datepicker( {
         onSelect: function(date) {
            alert(date)
         },
        selectWeek: true,
        inline: true,
        startDate: '01/01/2000',
        firstDay: 1,
      });
    });
    

    你可以自己调整参数:-)

    【讨论】:

    • @inkwai 如果我的 anwser 有帮助,请接受它,以便其他人可以从中学习。如果没有,我该如何进一步帮助您?
    【解决方案3】:

    如果您还对用户关闭日期选择对话框而不选择日期(在我的情况下选择不选择日期也有意义)的情况感兴趣,您可以绑定到onClose 事件:

    $('#datePickerElement').datepicker({
             onClose: function (dateText, inst) {
                //you will get here once the user is done "choosing" - in the dateText you will have 
                //the new date or "" if no date has been selected             
          });
    

    【讨论】:

      【解决方案4】:
      $(".datepicker").datepicker().on("changeDate", function(e) {
         console.log("Date changed: ", e.date);
      });
      

      【讨论】:

      • 谢谢,直截了当的解决方案,没有那些 val() 有趣的东西,也可以直接这样解决`$(".datepicker[name=datepicker2]").datepicker('getDate');`
      • 但是,当在处理程序中使用 getDate 之类的函数时,它会在尝试检索 datePicker 对象的状态时失败,例如 stackoverflow.com/a/17288563/3419535first = $(".datepicker[name=datepicker1]").datepicker('getDate');
      【解决方案5】:

      如果日期选择器在网格的一行中,请尝试类似

      editoptions : {
          dataInit : function (e) {
              $(e).datepicker({
                  onSelect : function (ev) {
                      // here your code
                  }
              });
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2019-06-09
        • 2011-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-29
        • 1970-01-01
        相关资源
        最近更新 更多