
本文详解因 getElementByID 拼写错误导致的 DOM 元素获取失败问题,通过修正为 getElementById 并补充多选兼容性处理,实现下拉框选项实时同步至文本输入框。
本文详解因 `getelementbyid` 拼写错误导致的 dom 元素获取失败问题,通过修正为 `getelementbyid` 并补充多选兼容性处理,实现下拉框选项实时同步至文本输入框。
在 HTML 表单交互开发中,常见需求是将
? 核心错误:方法名大小写敏感
document.getElementByID("courseName") 是无效调用,因为标准 Web API 中该方法名为 getElementById(末字母 d 小写),而非 ID(大写 D)。浏览器无法识别错误写法,直接抛出 TypeError: document.getElementByID is not a function,导致脚本中断,后续赋值失效。
✅ 正确写法如下:
function choiceMade(choice) {
document.getElementById("courseName").value = choice;
}
⚠️ 额外关键问题:
原 HTML 中
✅ 推荐方案(单选场景,符合教程意图):
<!-- 移除 multiple,改为单选 --> <select id="courses" onchange="choiceMade(this.value);"><option value="" selected>--Choose--</option> <option value="Angular">Angular</option> <option value="ReactJS">React</option> <option value="VueJS">Vue</option> <option value="JavaScript">JavaScript</option> <option value="Python">Python</option></select>
✅ 多选增强版(可选扩展):
function choiceMade(selectElement) {
const input = document.getElementById("courseName");
// 获取所有选中项的 value,用逗号分隔
const selectedValues = Array.from(selectElement.selectedOptions)
.map(option => option.value)
.filter(val => val); // 过滤空值(如 "--Choose--")
input.value = selectedValues.join(", ") || "";
}
对应 HTML 调用改为:onchange="choiceMade(this)"。
? 注意事项总结
- 大小写严格:getElementById 是唯一正确写法,ID/Id/id 均无效;
- DOM 加载时机:确保脚本在 DOM 加载完成后执行(如置于











