Ich habe ein Eingabefeld für das Geburtsdatum auf meinem Formular. Es gibt ein HTML-Auswahlfeld, das Javascript verwendet, um eine Liste von Jahren von 1930 bis 2017 zu präsentieren.Wählen Sie das Eingangsjahr in absteigender Reihenfolge
Wenn Sie jedoch auswählen, erscheint 1930 an der Spitze. Im Idealfall muss 2017 an der Spitze sein.
Ich bin sicher, das ist eine einfache Lösung, aber ich kann nicht sehen, wo ich falsch gelaufen bin.
Vielen Dank für die Hilfe.
var Days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // index => month [0-11]
$(document).ready(function() {
var option = '<option value="day">DD</option>';
var selectedDay = "day";
for (var i = 1; i <= Days[0]; i++) { //add option days
if (i < 10) {
option += '<option value="0' + i + '">0' + i + '</option>';
} else {
option += '<option value="' + i + '">' + i + '</option>';
}
}
$('#day').append(option);
$('#day').val(selectedDay);
var option = '<option value="month">MM</option>';
var selectedMon = "month";
for (var i = 1; i <= 12; i++) {
if (i < 10) {
option += '<option value="0' + i + '">0' + i + '</option>';
} else {
option += '<option value="' + i + '">' + i + '</option>';
}
}
$('#month').append(option);
$('#month').val(selectedMon);
var d = new Date();
var option = '<option value="year">YYYY</option>';
selectedYear = "year";
for (var i = 1930; i <= d.getFullYear(); i++) { // years start i
option += '<option value="' + i + '">' + i + '</option>';
}
$('#year').append(option);
$('#year').val(selectedYear);
});
function isLeapYear(year) {
year = parseInt(year);
if (year % 4 != 0) {
return false;
} else if (year % 400 == 0) {
return true;
} else if (year % 100 == 0) {
return false;
} else {
return true;
}
}
function change_year(select) {
if (isLeapYear($(select).val())) {
Days[1] = 29;
if ($("#month").val() == 2) {
var day = $('#day');
var val = $(day).val();
$(day).empty();
var option = '<option value="day">DD</option>';
for (var i = 1; i <= Days[1]; i++) { //add option days
option += '<option value="' + i + '">' + i + '</option>';
}
$(day).append(option);
if (val > Days[month]) {
val = 1;
}
$(day).val(val);
}
} else {
Days[1] = 28;
}
}
function change_month(select) {
var day = $('#day');
var val = $(day).val();
$(day).empty();
var option = '<option value="day">DD</option>';
var month = parseInt($(select).val()) - 1;
for (var i = 1; i <= Days[month]; i++) { //add option days
option += '<option value="' + i + '">' + i + '</option>';
}
$(day).append(option);
if (val > Days[month]) {
val = 1;
}
$(day).val(val);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<label>Date of birth (DD-MM-YYYY)</label>
<select id="day" name="day"></select>
<select id="month" name="month"></select>
<select id="year" name="year"></select>
Funktioniert perfekt! Vielen Dank –