4

selectこのオプションが既に選択されているかどうかに関係なく、ユーザーが HTML ボックスのオプションを選択したときに JavaScript 関数を実行する方法を見つけようとしています。それonchangeは論外です。

使用の問題onblurは、(少なくとも Chrome と Safari では) ユーザーが別の要素をクリックするまでイベントがトリガーされないことです。これは、ユーザーが選択に集中し、オプションを選択せず​​にクリックして離れた場合にも迷惑になる可能性があります。その場合、イベントをトリガーしたくありません。

各オプションにハンドラーを与えることである程度の成功を収めることができましたが、onmouseupこれは私の知る限り、Firefox でのみ機能します。何か案は?

4

2 に答える 2

4

誰もこれに答えようとしなかったので、私のコードの一般的なバージョンを投稿します。

<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.
}
于 2013-04-16T23:37:02.887 に答える
1

使ってみて

var s = document.getElementById("mySelect");
s.attachEvent("onchange", function() {
    // function here
});
于 2014-06-02T10:07:28.230 に答える