在select中替代onblur / onchange

时间:2013-04-11 03:42:52

标签: javascript select javascript-events

我试图找到一种方法来在用户选择HTML select框中的选项时运行JavaScript函数,无论此选项是否已被选中。所以onchange是不可能的。

使用onblur的问题在于(至少在Chrome和Safari中),在用户点击其他元素之前不会触发该事件。如果用户专注于选择,然后点击而不选择选项,这也可能会令人讨厌,在这种情况下我不希望触发事件。

通过为每个选项提供onmouseup处理程序,我获得了一些成功,但据我所知,这仅适用于Firefox。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

由于没有人愿意回答这个问题,我会发布我的代码的通用版本:

<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.
}

答案 1 :(得分:1)

尝试使用

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