选择选项中onblur/onchange的替代选项

Alternative to onblur/onchange in select

本文关键字:选项 onchange onblur 选择      更新时间:2023-09-26

我试图找到一种方法来运行一个JavaScript函数,当用户在HTML select框中选择一个选项,不管这个选项是否已经被选中。因此,onchange是不可能的。

使用onblur的问题是(在Chrome和Safari,至少)事件不触发,直到用户单击另一个元素。如果用户专注于选择,然后在没有选择选项的情况下单击,这也会很烦人,在这种情况下,我不希望触发事件。

我能够通过给每个选项一个onmouseup处理程序获得一些成功,但这只适用于Firefox,据我所知。什么好主意吗?

由于没有人费心回答这个问题,我将发布我的代码的通用版本:

<select id="mySelect" onfocus="this.selectedIndex=0;" onchange="userDidSomething(event)">
    <option>Choose one:</option>
    <option>Option 1</option>
    <option>Option 2</option>
</select>
JavaScript:

function userDidSomething(event) {
    // Your Code Here.
}

尝试使用

var s = document.getElementById("mySelect");
s.attachEvent("onchange", function() {
    // function here
});