• ベストアンサー

セレクトボックスで、最後にクリックした値を取得

セレクトボックス(multiple)で、クリックした時の値を取得したいと思っています。 通常、選択されている値を取得する場合は、onchangeを使用して取得するのが王道なのでしょうが、ctrlキーを使って複数選択された場合などに、最後に選択した値を知りたいため、onclick処理で、選択された値が取得できないかと考えています。 なお、複数選択時に、最後に選択された値が取得できるのならonchangeでも構いません。 何か、良い方法があれば教えていただければと思います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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> >最後に選択された値 選択が外れた場合どうしたいのか仕様があいまいですね? (一応外れた場合は無視しておきましたが)

ikazuti
質問者

お礼

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

関連するQ&A

  • multipleの取得

    現在、test1.phpのセレクトボックスで複数選択された値を、 test2.phpで取得させることをしています。 そこで、質問ですが、 <select name="sbox" multiple> <option>・・・ ・ ・ </select> を使ったセレクトボックスから、 複数の情報を取得するにはどうしたらいいですか? 現在は、複数選択したつもりでも、上書きされているためか、 最後のoption の値しか取得できません。 色んなページを参考にして、 <select name="sbox[]" multiple> にする方法を考えましたが、 このセレクトボックスはjavascriptで、 optionの数を変えています。 そのため、nameに[]を使うと、javascriptが動作しなくなってしまう ようです。 nameに[]を使う以外に、複数の値をPOSTする方法を教えてください。 わかりにくい質問で申し訳ないですが、よろしくお願いします。

    • 締切済み
    • PHP
  • 複数選択された値を取得したい

    複数選択可のリストボックスを使用してパラメータをPOSTで送った時、その値の取得方法がわかりません。 例えば <select name="select" multiple> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> </select> というリストボックスがあります。 02、03、04を選択して送信した時に、$_POST[select]の中には04しか入っていません。 選択された値を配列にして全て取得したいのですが、どのようにすれば良いのでしょうか? アドバイスをお願いします。

    • ベストアンサー
    • PHP
  • リストボックスで表示されている値を取得したい!

    たびたびお世話になります。 まだまだ勉強中で、調べても分からないので、質問させていただきます。 よろしくおねがいいたします。 Smarty + php で画面をつくっています。 リストボックスに、phpで設定した値をだしています。 設定しているのはKey と 値です。 0 りんご 1 みかん のように。 画面でリストボックスから選択すると、りんご やみかん のように値がみえますが、PHPで値を取得すると 0 や 1 のKeyです。 PHP側での処理で、Key と 値の両方を使いたいのです。 このため、画面のリストボックスの横にhiddenでテキストボックスを追加し、選択されたタイミングでTPL内のJavaScriptで、値をテキストボックスに設定し、画面終了時にPHPへPOST渡しをしようと考えました。 <select onblur="fnGetName(this)"~ とすると、キーの方しか取得できません。 どうすれば、和名(値)を取得できるのでしょうか 説明が下手ですみません。 よろしくお願いいたします。

  • テキストボックスに値入力でイベントが取得できない

    年月日テキストボックス(readonly)に、子ウインドウから値を選択して、表示させています。 可変で複数行あり、同じ値はエラーにしたいのですが、子ウインドウから値が入力された場合のイベント取得ができません。(onchangeは無視されます) なるべく入力をした時点でチェックしたのです。 よろしくお願いします。

  • 複数の連動する同じ内容のセレクトボックスについて

    こんばんわ。 よろしくお願いします。 複数の同じ内容のセレクトボックスが連動するモノを作りたいのですが、まったく解りません。 たとえば 初期値を『選択しない』とし、1~5までの値を選択出来るセレクトボックスが5つあるとします。 1つ目のセレクトボックスで『3』を選択したら、残りのセレクトボックスでは3を除いた1~5までの値を選択出来ます。 さらに2つ目のセレクトボックスで『2』を選択したら、残りのセレクトボックスでは2と3を除いた1~5までの値を選択出来きるといった、全てのセレクトボックスが連動した重複を許さないセレクトボックスを作りたいのですが、可能でしょうか?

  • HTMLのテーブルの値と同じ値をセレクトボックスで選択したい

    テーブルには1月~12月までの値があり、セレクトボックスにも1月~12月の項目があります。 この様な場合で、テーブルの4月をクリックした場合、セレクトボックスの4月を選択状態にしたいです。 テーブルの値を取得し、テキストボックスに表示する事は出来ましたが、セレクトボックスの場合はさっぱり分かりません。宜しければご教授下さい。 下記は別のサイト様を参考にテスト中の物ですが、テキストボックスには可能ですが、セレクトボックスでは表示されません。 <SCRIPT TYPE="text/javascript"> <!-- function getCell(obj){ document.getElementById("text1").value = document.getElementById("td"+obj + "a").textContent; } // --> </SCRIPT> </head> <body> <table border="1" cellpadding="0" cellspacing="0"> <tr id="tr0" onclick="getCell('1')"> <td id="td1a">1月</td> </tr> <tr id="tr0" onclick="getCell('2')"> <td id="td2a">2月</td> </tr>   <tr id="tr0" onclick="getCell('3')"> <td id="td3a">2月</td> </tr>   省略 </table>  <select id="text1"> <option>1月</option> <option>2月</option> <option>3月</optio>     省略 </select> 初心者丸出しで申し訳有りませんが宜しくお願いします。

  • PHP セレクトボックスの値 GET渡し

    PHP初心者です。 大急ぎで対応を要求されていますので皆様のお力添えをよろしくおねがいします。 画面に検索キーとしてのセレクトボックスがあります。 ボタンではなくリンクのonClickで選択された値をGETで渡したいのです。 どのように記述したらよいか教えてください。 検索キーのリストボックス(2012を選択した状態です) <select name="search_orderyear"> <option value="2005" label="2005">2005</option> <option value="2006" label="2006">2006</option> <option value="2007" label="2007">2007</option> <option value="2008" label="2008">2008</option> <option value="2009" label="2009">2009</option> <option value="2010" label="2010">2010</option> <option value="2011" label="2011">2011</option> <option selected="selected" value="2012" label="2012">2012</option> </select> 渡す値をセットしている箇所(xxxは外部function名です) onClick="xxx('pdf.php?orderyear=<!--{$search_ordermonth.value}-->',・・以下省略 としてみましたが、値はわたりませんでした。 上記説明で不足部分があればご指摘ください。 よろしくおねがいいたします。 PHP 5.2.9

    • ベストアンサー
    • PHP
  • 強制的にセレクトボックスの値を変える

    http://www.okweb.ne.jp/kotaeru.php3?q=256766の関連質問にもなるのですが、 confirmで確認の際、「OK」でなく「キャンセル」の場合に、選択されたセレクトボックスの値を強制的に変更してsubmitさせる方法はないでしょうか。 confirm「学生ですか」→「OK」そのままsubumit confirm「学生ですか」→「キャンセル」セレクトボックスの値を「学生以外」などの値にしてsubmit

  • チェックされたセレクトボックスの値のpost

    APS6.0を使用し携帯サイトを作成しています。 ですのでjavascriptを利用出来ません。 チェックボックスが複数個存在し、同じ数だけセレクトボックスが存在します。 チェックボックスの隣にセレクトボックスがあります。 チェックされたセレクトボックスの値だけを次の画面にpostし、値渡しをしようと考えています。 そんな事は可能なのでしょうか。 現状では全てのセレクトボックスの値が次の画面に渡ってしまい、 どのセレクトボックスがチェックされたか分からないような状況になっています。

    • ベストアンサー
    • HTML
  • セレクトメニューの値の取得

    質問します。 下記のようなセレクトメニューがあった場合に、表示されている値(AA,BB)をJavaScriptで取得する場合はどのようなコーディングをすればよろしいのでしょうか? <select name="SL_CMB" onChange="alert();"> <option value="1" Selected>AA</option> <option value="2" >BB</option> <option value="3" >CC</option> <option value="4" >DD</option> <option value="5">EE</option> </select>