今天我们在使用optgroups的select元素上进行onchange时,在iOS 8.2 Safari中发现了一个奇怪的错误。 Codepen:http://codepen.io/anon/pen/xbeWXO
奇怪的是,当您在optgroup中有一个选定的选项并且您关注select元素时,它会直接触发onchange。它做什么,它选择所选的前面的选项。
实施例:
<select id="id_test" onchange="alert('WHY?!')">
<optgroup label="First">
<option value="1">Test 1</option>
</optgroup>
<optgroup label="Other">
<option value="2">Test 2</option>
<option value="3" selected>Test 3</option>
</optgroup>
</select>
现在,当您关注此选择元素时,它会直接警告“为什么?”,这是因为出于某种原因它选择了“测试2”选项。当您再次对焦时,它将选择“测试1”。
是否有某种方法(除了不使用optgroup)解决这种奇怪的行为?