jquery ui datepicker仅限日/月,而不是年份选择

我在这里搜索了所有的搜索结果,但没有为这个问题找到合适的解决方案。 使用jQueryUI DatePicker我需要选择所有年份的递归日期,所以我不想显示年份选择,因为它没有意义。

如何在通话中获取此信息,如下所示?

$('#myInput').datepicker({ dateFormat: "dd/mm" }); 

注意:我不能像这里建议的那样使用css解决方案.ui-datepicker-year{ display:none; } 因为在同一页面中还有其他日期选择器。

任何帮助将不胜感激。

提前致谢。

试试这个演示 : http : //jsfiddle.net/rAdV6/20/
另请参阅下面的两个屏幕截图。

进一步详细说明,此修复程序将允许在日历顶部显示带有或不带有年份的多个日期选择器。

jQuery代码:

 $('.DateTextBox.NoYear').datepicker({ beforeShow: function (input, inst) { inst.dpDiv.addClass('NoYearDatePicker'); }, onClose: function(dateText, inst){ inst.dpDiv.removeClass('NoYearDatePicker'); } }); $('#datepicker').datepicker( { changeYear: false, dateFormat: 'dd/mm',}); $('#datepicker1').datepicker( { changeYear: true, dateFormat: 'dd/mm', }); $('#datepicker2').datepicker( { changeYear: false, dateFormat: 'dd/mm', }); 

CSS:

 .NoYearDatePicker .ui-datepicker-year { display:none; } 

HTML:

  date (without year)  
date 1: (With year)
date 2: (Without year)

它在我的lappy OSX中的表现如何:

在此处输入图像描述

你做不到

 #myInput .ui-datepicker-year{ display:none; } 

将它限制在您关注的日期选择器中?

试试这个:

 $("#myInput").datepicker(); $("#myInput").datepicker("option", "dateFormat", "dd/mm"); 

作为jQuery UI DatePicker Documentaion,

http://docs.jquery.com/UI/Datepicker#option-dateFormat

您必须在初始化中调用以下函数。

 $("#myInput").datepicker({ dateFormat: "dd/mm" }); 

如果在init方法之后调用它,它将无法工作。

在Tats_innit的答案的基础上,这是一个解决它的几个问题的解决方案。

 $(function() { $('.dp').datepicker({ dateFormat: 'd MM yy', beforeShow: function(inp, inst) { if (inp.classList.contains("Birthday")) { inst.dpDiv.addClass('BirthdayDatePicker'); return { dateFormat: 'MM d', defaultDate: new Date(1904, 0, 1), minDate: new Date(1904, 0, 1), maxDate: new Date(1904, 11, 31), }; } }, onClose: function(dateText, inst) { inst.dpDiv.removeClass('BirthdayDatePicker'); } }); }); 
 .BirthdayDatePicker .ui-datepicker-year { display: none; } 
    Birthday:  
Defaults:

简单的解决方案:

 $(".daypicker").datepicker( { changeYear: false, dateFormat: 'MM-dd', }).focus(function () { $(".ui-datepicker-year").hide(); }); 

它不会影响同一页面中的其他日期选择器。

我知道这是一个非常古老的问题,但也许对某人有帮助。 如果设置选项changeYear: false ,则可以看到带有年份值的 ,但如果设置changeYear: true ,则可以看到 。 我们可以像这样使用这种差异:

 $(function() { $("#year-datepicker").datepicker({ changeMonth: true, changeYear: true }); $("#no-year-datepicker").datepicker({ dateFormat: "MM d", changeMonth: true, changeYear: false }); }); 
 span.ui-datepicker-year { display: none; } 
    

With year:

Without year: