我在下面有这个代码。选择后所有内容都将被禁用。
<select id="dropdown" name="dropdown" onchange="javascript:this.disabled = 'disabled';">
<option value="dropdown">Pls select one
<option value="apple">Apple
<option value="oragne">Orange
<option value="grapes">Grapes
</select>
但是当我点击提交时,“下拉菜单”的值没有被传递。我在这里遗漏了什么吗?
最佳答案
禁用的表单控件不会被提交。这是正常行为。
一种解决方法是将所选值复制到将提交的隐藏输入。
(不过,我真的不建议禁用更改选择 - 如果用户不小心单击了错误的内容怎么办?如果他们尝试使用键盘进行选择怎么办?)
(另外,您在内联事件属性中不需要 javascript:
。)
编辑:如何实现隐藏输入?那么,为隐藏输入指定服务器端代码所需的名称(并从 select 元素中删除 name
属性):
<input type="hidden" name="dropdown" id="dropdown">
然后你的 onchange
属性将类似于:
<select onchange="document.getElementById('dropdown').value=this.value; this.disabled=true;">
关于javascript - 选择后禁用下拉列表后如何从下拉列表中获取所选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16226820/