- ベストアンサー
セレクトボックスで、最後にクリックした値を取得
セレクトボックス(multiple)で、クリックした時の値を取得したいと思っています。 通常、選択されている値を取得する場合は、onchangeを使用して取得するのが王道なのでしょうが、ctrlキーを使って複数選択された場合などに、最後に選択した値を知りたいため、onclick処理で、選択された値が取得できないかと考えています。 なお、複数選択時に、最後に選択された値が取得できるのならonchangeでも構いません。 何か、良い方法があれば教えていただければと思います。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでどうでしょう? <script> try{ document.addEventListener ('click',function(e){clickfunc(e)},true); //基本 }catch(e){ document.attachEvent('onclick',function(e){clickfunc(e)}); //IE } function clickfunc(e){ var t = (e.srcElement || e.target); if(t.nodeName=="OPTION" && t.selected){ document.getElementById("fuga").value=t.value; } } </script> <form> <select name="hoge" multiple size="10"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="text" name="fuga" id="fuga"> </form> >最後に選択された値 選択が外れた場合どうしたいのか仕様があいまいですね? (一応外れた場合は無視しておきましたが)
お礼
「最後に選択された値」については、また考えてみます。 参考になりました。ありがとうございます。