Jquery ui 带有EOM和MOM的Jquery UI日期选择器

Jquery ui 带有EOM和MOM的Jquery UI日期选择器,jquery-ui,calendar,mom,Jquery Ui,Calendar,Mom,我需要实现一个jqueryui日历,当用户单击任何日期时,它会自动选择下一个MOM或EOM 例如,如果用户在4月9日单击,则必须转到“4月15日”, 或者如果在2月22日点击,则必须转到“2月28日”或“2月29日” 请澄清: 妈妈是月中旬,每次都是15号,从任何一个月的1号到15号。 EOM是月末,是本月的最后一天,1月31日、2月28日或29日、3月31日、4月30日、5月31日、6月30日、7月31日、8月31日、9月30日、10月31日、11月30日、12月31日 感谢使用datepic

我需要实现一个jqueryui日历,当用户单击任何日期时,它会自动选择下一个MOM或EOM

例如,如果用户在4月9日单击,则必须转到“4月15日”, 或者如果在2月22日点击,则必须转到“2月28日”或“2月29日”

请澄清: 妈妈是月中旬,每次都是15号,从任何一个月的1号到15号。 EOM是月末,是本月的最后一天,1月31日、2月28日或29日、3月31日、4月30日、5月31日、6月30日、7月31日、8月31日、9月30日、10月31日、11月30日、12月31日


感谢使用datepicker的onSelect事件。请注意,如果设置了maxDate选项,且其在EOM或MOM之前,则所选值将为maxDate

更新:选择后关闭。使用onClose代替

UPDATE2:使用最新的jqueryui

  onClose: function(dateText, inst) {
    var day = inst.currentDay,
        month = inst.currentMonth,
        year = inst.currentYear;

    if (day <= 15) {
      day = 15;
    }
    else {
      day = 0;
      if (month>10){
        month = 0;
        year++;
      }
      else
        month++;
    }
    var d = new Date(year, month, day);
    $(this).datepicker("setDate", d);
  }

适用于IE6/IE7/IE8/IE9和FF、Chrome等的代码

    <script type="text/javascript">
    $(function() {
        $("#payperiodcalendar input").datepicker({
            dateFormat: 'dd-M-yy',
            onSelect: function(dateText, inst) {
                var selectedDay = inst.currentDay,
                selectedMonth = inst.currentMonth,
                selectedYear = inst.currentYear;



                if (selectedDay <= 15) {
                    var now = new Date(selectedYear, selectedMonth, 15);
                } else {
                    var now = new Date(selectedYear, selectedMonth, LastDayOfMonth(selectedYear, selectedMonth));
                }
                $(this).attr("value", now.format("dd-MMM-yyyy"));

            }
        });
        function LastDayOfMonth(Year, Month) {
            Month++;
            return (new Date((new Date(Year, Month, 1)) - 1)).getDate();
        }
    });



</script>

我将作为文本框的标准jqueryonchange处理程序来执行此操作。原因是用户可以绕过日期选择器并手动键入日期。无论选择、键入或粘贴日期,您都希望自动更改日期。

mmm inst.currentmount返回“2”。我的dateformat是dd-M-yy,我的意思是,它在一个月前返回,但它是calendarpicker提供的。它就像inst的减1。currentMonthIt从零开始。一月是0,二月是1等。在任何答案中,自动选择后弹出窗口不会关闭日历必须是jQuety UI回归。适用于IE9。但现在它不会关闭弹出窗口!