表单联动问题求助:根据AidYear下拉选择动态更新出生年份
问题解决
原代码问题分析
- 误用赋值符号
=代替比较符号===,导致逻辑判断完全失效 - 直接操作DOM元素而非其
value属性,所以会输出元素对象本身[object HTMLSelectElement] - 未监听下拉框的
change事件,无法实现选择后的实时更新 - 没有将计算后的目标年份赋值给变量,也没有正确更新DOM内容
单行实现代码
您是否在<span id="birthYear">1998</span>年1月1日之前出生? <script>const yearMap={"":"1998","2021-2022":"1998","2022-2023":"1999","2023-2024":"2000"},aidYear=document.getElementById("AidYear");const updateYear=()=>document.getElementById("birthYear").textContent=yearMap[aidYear.value];updateYear();aidYear.addEventListener("change",updateYear);</script>
代码说明
- 用
yearMap对象建立下拉框值与目标年份的映射关系,逻辑清晰易维护 - 定义
updateYear函数负责更新DOM中的年份文本 - 页面加载时先执行一次
updateYear()设置默认值 - 给下拉框绑定
change事件,选择变化时自动触发更新 - 整段脚本合并为单行,满足需求
内容的提问来源于stack exchange,提问作者Kamelkisser
相关产品推荐
相关产品推荐

