前段时间根据项目需要,做一个select日期级联,在整个级联过程中需要进行判断的只有月的天数,年份和月份都是固定的。
<script type="text/javascript">
$(document).ready(function () {
var year = $("#idYear");
var month = $("#idMonth");
var day = $("#idDay");
var date = new Date();
var y = date.getFullYear().toString();
MonDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
//初始化年份
for (var i = 1960; i <= y - 8; i++) {
year.append("<option value='" + i + "'>" + i + "</option>"); //为Select追加一个Option(下拉项)
}
//初始化月份
//month.get(0).options.add(new Option("请选择月", "请选择月"));
for (var i = 1; i < 13; i++) {
if(i >= 10){
month.append("<option value='" + i + "'>" + i + "</option>"); //为Select追加一个Option(下拉项)
}else{
month.append("<option value='0" + i + "'>0" + i + "</option>"); //为Select追加一个Option(下拉项)
}
}
//初始化天数
var mn = month.val();
var ye = year.val();
var n = MonDays[mn - 1];
if ((ye % 4 == 0 && ye % 100 != 0) || ye % 400 == 0) {
if (mn == 2) {
n++;
}
}
for (var i = 1; i < n + 1; i++) {
if(i >= 10){
day.append("<option value='" + i + "'>" + i + "</option>"); //为Select追加一个Option(下拉项)
}else{
day.append("<option value='0" + i + "'>0" + i + "</option>"); //为Select追加一个Option(下拉项)
}
}
//月份改变时加载天数
$("#idMonth").change(function () {
var mn = month.val();
var ye = year.val();
var n = MonDays[mn - 1];
//alert(ye + "," + mn + "," + n);
day.empty();
if ((ye % 4 == 0 && ye % 100 != 0) || ye % 400 == 0) {
if (mn == 2) {
n++;
}
}
//day.get(0).options.add(new Option("请选择日", "请选择日"));
for (var i = 1; i < n + 1; i++) {
if(i >= 10){
day.append("<option value='" + i + "'>" + i + "</option>"); //为Select追加一个Option(下拉项)
}else{
day.append("<option value='0" + i + "'>0" + i + "</option>"); //为Select追加一个Option(下拉项)
}
}
});
});
</script>
<select id="idYear"></select>
<select id="idMonth"></select>
<select id="idDay"></select>