Я предполагаю, что у вас есть три выбора с классами '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++) {
$('<option>').attr('value', i).text(i).appendTo('.day');
}
}
}
$(function () {
monthChanged(); // On document ready
$('.month').change(monthChanged); // On month change
$('.year').change(monthChanged); // On year change (for leap years)
});
Демо: http://jsfiddle.net/FxBpB/