在选择框上重新填充日期

我在Rails中创建了一个date_select(这是3个选择框:一个用于一年,一个用于一个月,一个用于一天)。

2月31日对他们来说非常令人困惑。 我希望能够使选择框只有有效日期。 我的意思是,当您选择2月,31日,30日(以及某些年份29日)时,将删除,然后,当您选择1月时,它们会再次添加,依此类推。 此外,我希望初始选择框仅填充所选月份的日期。

我假设你有三个选择,分别是'day', 'month', 'year' 。 然后使用这个JS:

 function monthChanged() { var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var month = $('.month').val() - 1, year = +$('.year').val(); var diff; // Check for leap year if Feb if (month == 1 && new Date(year, month, 29).getMonth() == 1) days[1]++; // Add/Remove options diff = $('.day option').length - (days[month] + 1); if (diff > 0) { // Remove $('.day option').slice(days[month] + 1).remove(); } else if (diff < 0) { // Add for (var i = $('.day option').length; i <= days[month]; i++) { $(' 

演示: http : //jsfiddle.net/FxBpB/

 /* automatically update days based on month */ for (var i = 2014; i < 2019; i++) { $(' 

参考小提琴链接: http : //jsfiddle.net/u3fr1mt0/