日期选择器的Onshow事件

问题描述 投票:0回答:2

我想在显示时向日期选择器添加类。我写了这段代码,但不起作用。

如何做到这一点?

$(targetEl).datepicker({
      dateFormat: "yy/mm/dd",
      changeMonth: true,
      changeYear: true,
      yearRange: "-100:-13",
      defaultDate: "-13y",
      regional: '',
      isRTL: true,
      onShow: function () { $("#ui-datepicker-div").addClass("DatePikerEN"); }

});
jquery datepicker
2个回答
7
投票

文档中未提及

onShow
事件。使用
beforeShow
代替

演示:

$('#datepicker').datepicker({
  dateFormat: "yy/mm/dd",
  changeMonth: true,
  changeYear: true,
  yearRange: "-100:-13",
  defaultDate: "-13y",
  regional: '',
  isRTL: true,
  beforeShow: function() {
    alert('show');
    $("#ui-datepicker-div").addClass("DatePikerEN");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js" integrity="sha256-lSjKY0/srUM9BE3dPm+c4fBo1dky2v27Gdjm2uoZaL0=" crossorigin="anonymous"></script>

<input id="datepicker" type="text" placeholder="click to select date" />

旧演示


0
投票

标记的答案完全有效!

但是如果在某些情况下存在多个日期选择器
那么您应该使用当前日期选择器的实例并仅定位一个日期选择器控件

$('#datepicker').datepicker({
        dateFormat: "yy/mm/dd",
        changeMonth: true,
        changeYear: true,
        yearRange: "-100:-13",
        defaultDate: "-13y",
        regional: '',
        isRTL: true,
        beforeShow: function (elem,dp) { 
            dp.dpDiv.addClass("DatePikerEN"); 
        }
 });
© www.soinside.com 2019 - 2024. All rights reserved.