プロが教えるわが家の防犯対策術!

セレクトボックス(multiple)で、クリックした時の値を取得したいと思っています。

通常、選択されている値を取得する場合は、onchangeを使用して取得するのが王道なのでしょうが、ctrlキーを使って複数選択された場合などに、最後に選択した値を知りたいため、onclick処理で、選択された値が取得できないかと考えています。

なお、複数選択時に、最後に選択された値が取得できるのならonchangeでも構いません。

何か、良い方法があれば教えていただければと思います。
よろしくお願いします。

A 回答 (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>

>最後に選択された値

選択が外れた場合どうしたいのか仕様があいまいですね?
(一応外れた場合は無視しておきましたが)
    • good
    • 0
この回答へのお礼

「最後に選択された値」については、また考えてみます。
参考になりました。ありがとうございます。

お礼日時:2011/11/10 13:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!