Jquery ui jQuery UI多个日期选择器:按类设置选项后,按id设置单个事件

Jquery ui jQuery UI多个日期选择器:按类设置选项后,按id设置单个事件,jquery-ui,datepicker,options,onselect,Jquery Ui,Datepicker,Options,Onselect,我在一个页面中有多个日期选择器。 我使用用户类名设置选项,如出现 $('.datepickers').datepicker({ dateFormat: "yy-mm-dd", showButtonPanel: true, changeMonth: true, changeYear: true, showOtherMonths: true, selectOtherMonths: true,

我在一个页面中有多个日期选择器。 我使用用户类名设置选项,如出现

$('.datepickers').datepicker({
        dateFormat: "yy-mm-dd",
        showButtonPanel: true,
        changeMonth: true,
        changeYear: true,
        showOtherMonths: true,
        selectOtherMonths: true,
        showWeek: true
});
然后,我想为其中两个设置onSelect事件

$('#to').datepicker({
    onSelect: function(selectedDate) {
        $('#from').datepicker("option", "minDate", selectedDate);
    }
});
类似的onSelect事件设置


然而,这是行不通的。除了按id分别设置所有选项外,还有任何关于如何解决此问题的建议吗?

我在这里创建了一个功能演示,展示了一个可能的解决方案:

您不必创建多个datepicker方法。只需使用“onSelect”方法即可:

  • 测试当前日期选择器是否有“#到”
  • 如果是,请使用此日期选择器中的“dateText”值初始化“#from”日期选择器
  • 使用当前的“inst”值将dom遍历到“#from”日期选择器并设置其值
  • 这些是关键的要点:

    onSelect: function(dateText, inst) {
       if(inst.id === 'to'){
         $('.datepickers').filter($('input#from')).datepicker("option", "minDate", dateText);
      }          
    }
    

    您是否尝试了以下语法?您不想再次初始化datepicker小部件。您只想更改一个选项。这是使用jQueryUI小部件实现的方法

        $('#to').datepicker('option', 'onSelect', function(selectedDate) {
                $('#from').datepicker("option", "minDate", selectedDate);
            });
    

    它起作用了。我原来通过选择是一个事件,所以我不能使用这个方法。我尝试了$('#to').datepicker('event','onSelect'),显然它不起作用。如果要一次性添加/更改多个选项,请使用
    $('#from').datepicker(“option”,{minDate:selectedDate,defaultDate:selectedDate});
    谢谢你的帮助。我只选择另一个答案,因为我不喜欢每次有一个日期选择器为onSelect时调用if语句