Вы используете переменную day внутри цикла for, чтобы добавить ее к сегодняшней дате.Поскольку он начинается с 0 , он никогда не получит вчерашнюю дату.Вместо этого начните с -1 .
Чтобы сделать параметр автоматически выбранным, вы можете использовать параметры defaultSelected и selected элемента HTMLOptionElement иустановите для них значение true.
Наконец, чтобы узнать, что выбрал пользователь, вам необходимо присоединить прослушиватель событий change к элементу select.
var dateRange = document.getElementById('date-range'),
monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec"
];
var days = ["yesterday", "today", "tomorrow"];
for (var day = -1; day < 2; day++) {
var date = new Date();
date.setDate(date.getDate() + day);
var dateAsString = [date.getDate(), monthNames[date.getMonth()],
date.getFullYear()
].join(' ');
if (day == 0) {
dateRange.options[dateRange.options.length] = new
Option(dateAsString, dateAsString + " (" + days[day + 1] + ")", true, true);
} else {
dateRange.options[dateRange.options.length] = new
Option(dateAsString, dateAsString + " (" + days[day + 1] + ")");
}
}
function handleSelected(e) {
console.log(e.target[e.target.selectedIndex].value + " selected");
}
dateRange.addEventListener("change", handleSelected);
<select id="date-range" class="form-control" name="date">
</select>