使用本月的月份在 javascript 中创建下拉列表
create a dropdown list in javascript using months from this month
我有一个 "search by month" 功能,并在下拉列表 (select) 字段中列出了月份。我希望只显示从本月开始(包括本月)未来 5 年的月份。这是我目前所拥有的:
var multiYears = [ "2015", "2016", "2017", "2018", "2019", "2020"];
var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
var htmlOptions = "";
var i;
for (m = 0; m < multiYears.length; m++) {
var multiYear = multiYears[m];
for (i = 0; i < 12; i++) {
var realMonth = i + 1;
htmlOptions += '<option value="' + ("0" + realMonth).slice(-2) + "-" + multiYear + '">' + monthNames[i] + " " + multiYear + '</option>';
}
}
var htmlStart = '<select size="1" id="multiDrop" name="multiDrop">';
var htmlOptionsHeader = '<option value="_">Navigate by month</option>';
var htmlEnd ='</select>';
var html = htmlStart + htmlOptionsHeader + htmlOptions + htmlEnd;
我使用 JavaScript 将此 HTML 添加到我的页面,然后使用 select 选项中的值根据月份和年份加载结果,如下所示:01-2015, 02-2015、03-2015 等,其中一月是 01(而不是 0)
查看我的演示 here。它显示今年的 9 月和随后年份的所有月份。
var multiYears = [ "2015", "2016", "2017", "2018", "2019", "2020"];
var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
var htmlOptions = "";
var i;
var currentDate = new Date();
for (m = 0; m < multiYears.length; m++) {
var multiYear = multiYears[m];
var startMonth = 1;
// if it's the current year, only show from this month onwards
if (multiYear == currentDate.getYear() + 1900) {
startMonth = currentDate.getMonth() + 1;
}
for (i = startMonth ; i <= 12; i++) {
htmlOptions += '<option value="' + ("0" + i).slice(-2) + "-" + multiYear + '">' + monthNames[i - 1] + " " + multiYear + '</option>';
}
}
var htmlStart = '<select size="1" id="multiDrop" name="multiDrop">';
var htmlOptionsHeader = '<option value="_">Navigate by month</option>';
var htmlEnd ='</select>';
var html = htmlStart + htmlOptionsHeader + htmlOptions + htmlEnd;
document.body.innerHTML += html;
我有一个 "search by month" 功能,并在下拉列表 (select) 字段中列出了月份。我希望只显示从本月开始(包括本月)未来 5 年的月份。这是我目前所拥有的:
var multiYears = [ "2015", "2016", "2017", "2018", "2019", "2020"];
var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
var htmlOptions = "";
var i;
for (m = 0; m < multiYears.length; m++) {
var multiYear = multiYears[m];
for (i = 0; i < 12; i++) {
var realMonth = i + 1;
htmlOptions += '<option value="' + ("0" + realMonth).slice(-2) + "-" + multiYear + '">' + monthNames[i] + " " + multiYear + '</option>';
}
}
var htmlStart = '<select size="1" id="multiDrop" name="multiDrop">';
var htmlOptionsHeader = '<option value="_">Navigate by month</option>';
var htmlEnd ='</select>';
var html = htmlStart + htmlOptionsHeader + htmlOptions + htmlEnd;
我使用 JavaScript 将此 HTML 添加到我的页面,然后使用 select 选项中的值根据月份和年份加载结果,如下所示:01-2015, 02-2015、03-2015 等,其中一月是 01(而不是 0)
查看我的演示 here。它显示今年的 9 月和随后年份的所有月份。
var multiYears = [ "2015", "2016", "2017", "2018", "2019", "2020"];
var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
var htmlOptions = "";
var i;
var currentDate = new Date();
for (m = 0; m < multiYears.length; m++) {
var multiYear = multiYears[m];
var startMonth = 1;
// if it's the current year, only show from this month onwards
if (multiYear == currentDate.getYear() + 1900) {
startMonth = currentDate.getMonth() + 1;
}
for (i = startMonth ; i <= 12; i++) {
htmlOptions += '<option value="' + ("0" + i).slice(-2) + "-" + multiYear + '">' + monthNames[i - 1] + " " + multiYear + '</option>';
}
}
var htmlStart = '<select size="1" id="multiDrop" name="multiDrop">';
var htmlOptionsHeader = '<option value="_">Navigate by month</option>';
var htmlEnd ='</select>';
var html = htmlStart + htmlOptionsHeader + htmlOptions + htmlEnd;
document.body.innerHTML += html;