• 締切済み

リストボックスに動的な初期設定値(selected)を与えたい(質問長文)

以下のようなリストボックスで、今日の日付データから「(1年前の)year」と「(今月の)month」の初期設定値を与えようと思うのですが、スマートな方法が思いつきません。 どなたかよい方法を教えてください・・・ <form name="test"> <select name="year"> <option>1997 ・・・(中略) <option>2005</select> 年 <select name="month"> <option value="01">1 ・・・(中略) <option value="12">12</select> 月 </form> <script language="JavaScript"> <!-- function initial(){ 【ここにどのように書くか】 } initial(); //--> </script>

みんなの回答

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

こんな感じでいいと思います function initial(){ var today = new Date(); // var year = today.getYear(); var month = today.getMonth(); var yearLen = document.test.year.options.length; document.test.year.options[yearLen-1 -1].selected=true; document.test.month.options[month].selected=true; } //-------------------------------------------- 昨年を求めるのに、optionの最後のデータの手前のデータを選ぶようにしてあります。(つまり、今年が一番最後のデータとしてあることを期待している。) 質問文の様な形式だと、"その年"(実行する時の年)のソースがどうなっているか判らないので、他の方法の方がいいかもしれません。 例えば、現在yearの方にはvalueを付けてありませんけど、valueとかの値でそのリストを探すようにするとか。(valueがなくてもoptions[i].textで調べられますけど)

kokomai
質問者

お礼

ありがとうございます。valueがないといろいろと面倒なのですね。。。 options[i].textに対して選択されているチェックボックスが何番目かを調べる方法については、Webの情報をを元になんとかできました。

関連するQ&A

  • 選択した値を参照する

    以下の点で分からない事がございます。 <SCRIPT language="JavaScript"> function selectA(){ var selectFlg = document.getElementById("form1").value; …(A) ・ ・ (中略) ・ } </SCRIPT> ・ ・ (中略) ・ <form> <select name="form1" onchange="selectA()"> <option value="1">あ</option> <option value="2">い</option> <option value="3">う</option> </select> ・ ・ (中略) ・ </form> の文での事ですが、選択したのが「あ」であるとしたら(A)のselectFlg には数字の「1」が入るのではないでしょうか。 また、optionのvalueにどんな文字を入れてもselectFlgには、その値が 代入されますでしょうか。ご教授お願い致します。

  • リストボックスを連動させて・・・その2

    直前の質問で下記の回答をいただいたものです。 質問では2つのリストボックスを連動させたサンプルの回答をいただきましたが、ひょっとして、リストボックスの個数が何個でも対応させることはできないでしょうか。つまり、リストボックスのnameなどをscript部分に記さずに・・。 ここまでサンプルをもらっても改造できないので質問。 (^^; ■JavaScript <SCRIPT language=JavaScript> <!-- strBase = "test.cgi?hinmei=denwa "; strS1 = "&s1="; strS2 = "&s2="; function set(){  strS1b = strS1  strS2b = strS2   if (document.form.s1.options[document.form.s1.selectedIndex].value)   strS1b += document.form.s1.options[document.form.s1.selectedIndex].value;  if (document.form.s2.options[document.form.s2.selectedIndex].value)   strS2b += document.form.s2.options[document.form.s2.selectedIndex].value;  strURL = strBase + strS1b + strS2b;  document.form.text.value = strURL; } //--> </SCRIPT> ■フォーム <FORM NAME="form"> <select name="s1" onChange="set()"> <OPTION VALUE="" SELECTED>↓【選択して下さい】</OPTION> <OPTION VALUE="big">big</OPTION> <OPTION VALUE="small">small</OPTION> </SELECT> <select name="s2" onChange="set()"> <OPTION VALUE="" SELECTED>↓【選択して下さい】</OPTION> <OPTION VALUE="red">red</OPTION> <OPTION VALUE="white">white</OPTION> </SELECT> <INPUT TYPE="text" SIZE=50 NAME="text"> </FORM>

  • 入力フォームでdisabledによる入力制限

    プルダウンをdisabledで制御しようと思っています。 yearを選択するまでmonthを無効にしたいのですが、うまくいきませんでした。 下記の簡略化したソースでも動作しませんでした。 テストでwindow.openを入れると動作するので、document...の文かとは思うのですが。 どなたかお気づきでしたら、お教え下さい。 よろしくお願い致します。 <html> <head> <title>inputtest</title> <SCRIPT LANGUAGE="JavaScript"> function menu_ctrl(){ var sel_num = document.sel_inp.year.selectedIndex; if(sel_num == 0){ document.sel_inp.month.disabled = false; // window.open("http://www.google.co.jp/"); } } </SCRIPT> </head> <body onload="menu_ctrl()"> <form name="sel_inp"> <select name="year" onchange="menu_ctrl()"> <option value="00" style="color:#AAAAAA">null</option> <option value="01">2007</option> <option value="02">2008</option> <option value="03">2009</option> </select> <select name="month"> <option value="00" style="color:#AAAAAA">null</option> <option value="01">1</option> <option value="02">2</option> <option value="03">3</option> </select> </form> </body> </html>

  • javascriptでセレクトボックスの"selected"を動的につ

    javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。 現在、以下のようなフォームを作成しました。 <select name='year'> <option value='2010'>2010</option> <option value='2011'>2011</option> </select>年 <select name='month'> <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> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> </select>月 <select name='day'> <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> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> <option value='24'>24</option> <option value='25'>25</option> <option value='26'>26</option> <option value='27'>27</option> <option value='28'>28</option> <option value='29'>29</option> <option value='30'>30</option> <option value='31'>31</option> </select>日 このセレクトボックスに、例えば今日の日付"2010年9月30日"だったら、それぞれの年、月、日の<option>に"selected"をつけたいのですが、javascriptではどのようにして実現したら良いのでしょうか? よろしくお願いします。

  • Javascriptでセレクトメニューの選択チェックの方法

    Javascriptでセレクトメニューのフォームをチェックしたいのですが、 リストメニューの「選択して下さい」を選んだままだと、「番号を選択して下さい。」とエラーを出したいのですが、下記の様に書いてみたのですが、うまく動きません…どのように書けばいいか教えて下さい。宜しくお願いします。 <script language=\"JavaScript\"> <!-- function Check() { var str = document.form.a.value; if(document.form.a.value == "0") { alert("番号を選択して下さい"); } //--> </script> <form id="form" name="form" method="post" action="##"> <select name="a" onblur="Check();"> <option value="0">選択して下さい</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit" name="Submit" value="登録" onClick="Check();"> </form>

  • リストボックスで指定されたデータの取得

    リストボックスに幾つかのデータ(アイテム)を選択した後、 あるボタンを押したら、メッセージボックスを出力し、選択された データ(アイテム)を表示したいのですが、スクリプトではどのように 記述すればよろしいのでしょうか? サンプルは以下の通りです。 <html> <head></head> <SCRIPT LANGUAGE="JavaScript"> <!-- function MODORU( ) { alert(この部分をどう記述したらよろしいのでしょうか?); window.close( ); } //--> </SCRIPT> <body> <form name="fr01"> <table border="0"> <tr> <td> <select size="5" name="D1"> <option>標準</option> <option selected>端子箱右</option> <option>端子箱上</option> <option>両軸</option> <option>  </option> </select> </td> </tr> </table> <INPUT ONCLICK="MODORU()" TYPE="button" VALUE="転写" name="B3">&nbsp; </form> </body> </html>

  • web上のリストボックス作成

    あるHTMLで、リストボックスをDREAMWEAVERでさくせいしました。 リストを選択すると、選択された名前のHTMLに飛ぶように指定したのですが、 ネスケでは動いてくれるのですが、IEでは飛んでくれません. 原因を教えてください。以下のようなHTMLです。 このためのCGIはくんでいません。 <form name="form2"> <select name="month"onChange="MM_jumpMenu('parent',this,0)"size="0"multiple> <option value="1.html"> 1 </option> <option value="2.html"> 2 </option> <option value="3.html"> 3 </option> <option value="4.html"> 4 </option> <option value="5.html"> 5 </option> </select> </form>

    • ベストアンサー
    • HTML
  • プルダウンを選択していないときは、初期値(selected)の値を、選

    プルダウンを選択していないときは、初期値(selected)の値を、選択したときは選択値を、hiddenで渡したい。 ▽プルダウン例 <form> <select> <option value="0" selected>A</option> <option value="4">B</option> <option value="6">C</option> </select> </form> ↑上で選択した値(A or B or C)値を、↓下のvalue=「"hoge"」に渡したいです。 ※選択肢は3つだけではなくて、たくさんあります。 ▽input例 <input name="category_name" value="hoge" type="hidden"> ※formとかselectにid振っても構いません。 ※javascriptでやりたいです。

  • リストボックスから選択できないのはどうして!?

    実はJAVASCRIPTでリストボックス(select1)から会社名を選択するとその下のテキストボックス(link)に そのURLがでるものを作っていたのですが、なぜかリストボックスが選択できない状態になってしまいます。 下のがそのコードなのですが、どなたかわかるかたいらっしゃいませんか? どうぞよろしくお願いいたします。 <SCRIPT type="text/javascript"> <!-- function aaa() { var a; if((f.select1.value) ="A社") {url = "http://www.a***.co.jp" }; else if((f.select1.value) ="B社") {url =" http://www.b***.co.jp" }; else if((f.select1.value) ="C社") {url = "http://www.c***.co.jp" }; else{url = "URLはありません"}; (f.link.value) = url; return } //--> </script> <select onchange = "aaa()" name="select1"> <option value="A社" selected>A社</option> <option value="B社">B社</option> <option value="C社">C社</option>      <option value="D社">D社</option> </select> <input type="text" name="link">

  • [java script]NNでnullになる

    selectボックスに西暦を表示しています。 このselectボックスを2つ用意して、範囲設定を行っているのですが、 範囲指定大小チェックのロジックを作り、IEでは正しく動作したのですが、 NNだと関数conf()内でdocument.test.FROM_YEAR.valueとdocument.test.TO_YEAR.valueの値をみてみると、nullになっていたためFORM_YEAR>TO_YEARと指定しても範囲指定大小チェックのif文が、必ずfalseになって 処理を続行してしまいます。 なぜ、IEではうまくいくのにNNだとうまくいかないのでしょうか? これってNNのバグ??? ~ソースコード(抜粋)~ <SCRIPT LANGUAGE="JavaScript"> <!-- function conf() { from = document.test.FROM_YEAR.value; to = document.test.TO_YEAR.value; if (from > to) { alert("年の指定に誤りがあります。"); return false; } } //--> </SCRIPT> <FORM NAME='test' ACTION='test.html' METHOD="post" onSubmit="return(conf())"> <SELECT NAME='FROM_YEAR'> <OPTION VALUE='2001'>2001 <OPTION VALUE='2002' SELECTED>2002 <OPTION VALUE='2003'>2003 <OPTION VALUE='2004'>2004 <OPTION VALUE='2005'>2005 <OPTION VALUE='2006'>2006 </SELECT>年 <SELECT NAME='TO_YEAR'> <OPTION VALUE='2001' SELECTED>2001 <OPTION VALUE='2002'>2002 <OPTION VALUE='2003'>2003 <OPTION VALUE='2004'>2004 <OPTION VALUE='2005'>2005 <OPTION VALUE='2006'>2006 </SELECT>年 <INPUT TYPE='SUBMIT' NAME='SUBMIT' VALUE='登録'>

専門家に質問してみよう