• ベストアンサー

[JavaScript+<select>]最初から5文字一致でセレクト状態にしたい。

こんばんは。 HTMLとJavaScriptで簡単な動的ページを作成しています。 そこで、行き詰っていることがありますのでご相談を・・・。 こういう<SELECT>があるとします・・・。 <FORM name="myform"> <SELECT name="menu"> <OPTION value="item1001">メニュー1</OPTION> <OPTION value="item2001">メニュー2</OPTION> </SELECT> </FORM> 初期値を「メニュー2」にしたい場合・・・これをJavaScriptで指定する場合、ONLOADのタイミングで・・・ document.myform.menu.value = "item2001"; とすればいけます。 今回は・・・"item2"だけの情報でヒットさせたいと思っています。 つまり、optionのvalue値の頭から5桁だけのマッチングでセレクト状態にさせたいのです。 ループという形をとらずにセレクトさせる方法を探しています。 テクニックをご教授下さい・・・。 宜しくお願い致します。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>optionのvalue値の頭から5桁だけのマッチングでセレクト状態にさせたいのです。 valueの値でということは、それぞれのvalueを調べる必要があるからループさせずにはムリでしょう <OPTION id="item2" value="item2001">メニュー2</OPTION> とかしておけば document.getElementById("item2").selected=true; で一発でできると思うけど

zenon55
質問者

お礼

ご回答有難う御座いました! この方法でやらせてもらいました!!

その他の回答 (1)

  • Blaise
  • ベストアンサー率33% (13/39)
回答No.2

コードを見る限りでは、optionの各value値の末尾3ケタ が変わらないようですので、それを利用すれば、ループ を使わずに、アタマ5桁の文字列でマッチングできるので はないでしょうか。 具体的には、次の様なコードでどうでしょう。 テキストフィールドに明示的に文字列を表わすようにして みました。 <script> function Jump(o){ document.myform.menu.value = o+'001'; } </script> <FORM name="myform"> <input name="ih" type="text" value="item2"> <input type="button" value="CLICK" onclick="Jump(this.form.ih.value)"><SELECT name="menu"> <OPTION value="item1001">メニュー1</OPTION> <OPTION value="item2001">メニュー2</OPTION> </SELECT> </FORM>

関連するQ&A