JavaScript实现日期与星座级联下拉框
作者:纸飞机时间:2026-10-27 21:46:44浏览:139
本文提供了一段JavaScript代码,用于实现出生日期与星座的级联显示功能。通过监听年份、月份和日期的变化,动态更新日期选项并计算对应的星座信息。代码包含获取月份天数、判断闰年以及根据日期确定星座的逻辑,适用于Web开发中的用户生日输入场景。
JavaScript 实现代码
JavaScript 级联逻辑实现
具体实现如下:
function birthdayOnchange(obj) {
var year = $("<%= DDL_Year.ClientID%>").value;
if (year == "year")
return;
else
year = parseInt(year, 10);
var month = $("<%=DDL_Month.ClientID%>").value;
if (month == "month")
return;
else
month = parseInt(month, 10);
var day = $("<%=DDL_Day.ClientID%>").value;
var wholeday = getDays(year, month);
if (1) {
var options = $("<%=DDL_Day.ClientID%>").options;
for (var i = 1; i <= wholeday; i++) {
var j = i.toString();
j = j.length == 1 ? "0" + j : j;
options.length = i + 1;
options[i].value = j;
options[i].text = j;
if (day <= wholeday && i == day) {
options[i].selected = true;
}
}
}
function getDays(year, month) {
var dayarr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 || year < 1900)
return 29;
else
return dayarr[month - 1];
}
else {
return dayarr[month - 1];
}
}
function adjustAstro() {
var v_astro = getAstro($("<%=DDL_Month.ClientID%>").value, $("<%=DDL_Day.ClientID%>").value);
$("<%=astro.ClientID %>").options[0].text = v_astro;
}
function getAstro(v_month, v_day) {
v_month = parseInt(v_month, 10)
v_day = parseInt(v_day, 10);html
HTML 下拉列表结构
HTML 结构代码如下:
<DIV>出生日期:</DIV>
<DIV>
<asp:DropDownList ID="DDL_Year" runat="server" onchange="birthdayOnchange(this);"></asp:DropDownList> 年
<asp:DropDownList ID="DDL_Month" runat="server" onchange="birthdayOnchange(this);adjustAstro();"></asp:DropDownList> 月
<asp:DropDownList ID="DDL_Day" runat="server" onchange="adjustAstro();"></asp:DropDownList> 日
</DIV>作者最新文章
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
JS解析Excel后怎么将数据转换为JSON格式
2026-11-04 20:58:28
