このオプションが既に選択されているかどうかにかかわらず、ユーザーがHTML select
ボックスでオプションを選択したときにJavaScript関数を実行する方法を見つけようとしています。だからonchange
は問題になりません。選択中のonblur/onchangeの代わりに
onblur
の問題は、少なくともChromeとSafariでは、ユーザーが別の要素をクリックするまでイベントが発生しないことです。また、ユーザーが選択に集中してからオプションを選択せずにクリックすると、イベントがトリガーされないようにすることができます。
各オプションにonmouseup
ハンドラを付けることで成功を収めましたが、これはFirefoxでのみ動作します。何か案は?
んを使用してみてくださいonclick'の仕事ですか? – Barmar
@Barmar - いいえ、Firefoxだけが 'option'要素のクリックイベントをサポートしていると思います。私はIEでこれをテストしていないことを言及します。 –
'onfocus'のたびに' selectedIndex = -1'を作るのは醜い解決策です。 'onchange'を安全に聞くことができます。これはキーボードユーザーにとって迷惑なことですが、クライアントが以前に選択したものを気にしないと仮定した場合、これはテストに値するかもしれません。 – Passerby