本文介绍如何使用原生 JavaScript 监听下拉选择事件,并将 <select> 元素中用户选中的显示文本(text)而非 value 属性,动态写入同表单内的文本输入框(如隐藏字段或可见输入框),适用于表单增强、数据回显等场景。
本文介绍如何使用原生 javascript 监听下拉选择事件,并将 `` 元素中用户选中的**显示文本(text)**而非 `value` 属性,动态写入同表单内的文本输入框(如隐藏字段或可见输入框),适用于表单增强、数据回显等场景。
在 Web 表单开发中,常需将 <select> 的可视选项文字(如 "Grapes")而非其 value(如 "1")同步至其他字段(例如用于日志记录、前端展示或作为备用提交值)。由于 selectElement.value 仅返回 value 属性值,必须通过 selectedIndex 定位并读取 option.text 才能获取显示文本。
<form action="fruitBasket.php" method="post" enctype="multipart/form-data"> <select id="fruitSelector" name="fruitSelector"> <option value="0" selected disabled>Select Fruit</option> <option value="1">Grapes</option> <option value="2">Strawberries</option> <option value="3">Peaches</option> <option value="4">Blueberries</option> </select> <br><br> <input type="text" class="hiddenField" name="hiddenField" placeholder="Selected fruit appears here."></form><script> const theSelect = document.getElementById('fruitSelector'); theSelect.addEventListener('input', function() { // 确保有有效选项被选中(排除 disabled 的 placeholder) if (this.selectedIndex === 0) return; const selectedText = this.options[this.selectedIndex].text; document.querySelector('.hiddenField').value = selectedText; });</script>
通过以上方法,你即可轻量、可靠地实现“选中文本 → 填充输入框”的交互,无需依赖 jQuery 或框架,兼容所有现代浏览器及 IE11+。