<select> <option onclick="check()">one</option> <option onclick="check()">two</option> <option onclick="check()">three</option> </select>`
onclick事件不能在IE和Chrome上工作,但它在Firefox中正常工作,
这里我不想在选择标签bcz上使用onchange事件,如果用户再次选择相同的选项,它不会触发事件
Eg:say first time user selects “one” dropdown I will open a popup after processing some stuff user closes the popup,suppose if user wants to select same “one” dropdown it will not trigger any event.this can be solved using onclick event on option tag but its not working on IE and chrome
有没有办法解决这个问题?
解决方法
如果您想在用户选择时触发事件,为什么不简单地使用:
<select onclick="check()"> <option>one</option> <option>two</option> <option>three</option>
如果您想要使用特定选项的用户进行某些操作:
<select onclick="if (typeof(this.selectedIndex) != 'undefined') check(this.selectedIndex)"> <option>one</option> <option>two</option> <option>three</option>
这样,当且仅当选择了一个选项时,您才能保证调用check()。
编辑:正如@ user422543在评论中指出的那样,这个解决方案在Firefox中将不起作用。因此,我在这里提出另一个问题:Why does Firefox react differently from Webkit and IE to “click” event on “select” tag?
到目前为止,似乎使用< select>标签在所有浏览器中都不会一直工作。但是,如果我们使用诸如jQuery UI select menu或Chosen之类的库来模拟选择菜单来创建选择菜单,而不是使用< select>标记,点击事件将在< ul>或< li>标签在我测试的所有浏览器中是一致的。