Вы пытаетесь вернуть две вещи из getMonthNum
.Если вы действительно хотите вернуть индекс и количество дней, вы должны поместить их в массив.В противном случае вы просто получите последний в списке.
Затем вы можете сослаться на тот элемент, который вы хотите в массиве.
В качестве примечания вы можете найти такие функции массива, как find()
и findIndex()
немного приятнее, чем for
петли для подобных вещей.(Я также добавил stopDefault (), чтобы предотвратить обновление формы, чтобы результаты оставались в консоли - это может быть не то, что вам нужно в вашем реальном коде).
var daysInMonth = [{label: 'Jan',value: 31}, {label: 'Feb',value: 28}, {label: 'Marc',value: 31}, {label: 'Apr',value: 30},{label: 'May',value: 31}, {label: 'June',value: 30}, {label: 'July',value: 31}, {label: 'Aug',value: 31},{label: 'Sept',value: 30}, {label: 'Oct',value: 31}, {label: 'Nov',value: 30}, {label: 'Dec',value: 31}]
function getMonthNum() {
var monInput = document.getElementById("month").value;
for (var i = 0; i <= 11; i++) {
if (daysInMonth[i].label == monInput) {
var returnMonDayNum = daysInMonth[i].value;
var returnMonNum = i;
console.log("input:", monInput);
console.log("days:",returnMonDayNum);
console.log("i:",i);
return [returnMonDayNum, returnMonNum];
}
}
}
function DrawCal(e) {
e.preventDefault()
var result = getMonthNum();
// result is an array: [returnMonDayNum, returnMonNum]
console.log("days:", result[0]);
}
<form action="#" onsubmit="DrawCal(event);">
<label>Month: <input type="text" name="Enter Month" id="month" required></label>
<br>
<br>
<input type="submit" value="MakeCal">
</form>