我有一个Select with a disabled选项,它是默认选择的一个:
<select name="select" size="1"> <option>0</option> <option selected disabled>1</option> <option>2</option> <option>3</option> <option>4</option> </select>
如果我选择了它,它将返回1.一切正常.
但是如果我打开弹出窗口并将光标悬停在另一个选项上(例如’4′)并通过ESC取消它或点击其他任何地方.
选择输入显示旧值1但返回时选择4.
Chrome仅FireFox(4/5)不会发生这种情况
解决方法
当你以这种方式退出select时,显示不会改变,但firefox正在寻找一个不同的selectedValue,因为它找到当前选中的选项为disabled,这在firefox的眼中应该是不可能的.
onChange事件直到onBlur事件(这是selectedValue将被更改,但这不是显示更改为的内容)时才触发.如果我们要在onChange事件中重置我们的值,可能会再次调用此事件.因此,通过利用onBlur事件,我们可以提供以下解决方法:
onBlur =“javascript:document.getElementsByName(‘select’)[0] .selectedIndex = document.getElementsByName(‘select’)[0] .selectedIndex;”
我希望我在这里有意义.