• ベストアンサー

日付を取得してコンボボックスに出力

タイトルの通り、月を取得して<option>で作ったコンボに その月から3ヶ月分だけ出したいんですけれど (例)現在10/17 だとすると10.11.12.1月だけをコンボに出したいんです。 javascriptで月の取得は分かったのですが、コンボへの挿入が仕方が分かりません。 どうにか仕方ありますでしょうか?

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

  • ベストアンサー
  • xruz
  • ベストアンサー率50% (72/143)
回答No.3

こんばんはmasaichi1212さん、xruzです。 こんな感じで直接書いちゃうのはお気に召しませんか? <Select Name="sel" Size="1"> <Script Language="JavaScript"> <!-- var myDate=new Date(); for(var i=0;i<4;i++) { var mt=myDate.getMonth()+1; document.write("<option value=",mt,">",mt); myDate.setMonth(mt); } //--> </Script> </Select> Ie5.5sp2、NN4.75で動作確認済み。 がんばってくださいね。

masaichi1212
質問者

お礼

xruzさんありがとうございます!! 頭の領域が少ない僕にはxruzさんの提案して頂いた ソースは理解しやすくて助かりました。 分かりやすいんですけれど、一部mt=myDate.getMonth()で月を取得して ループするたびに1を加えたものをmtに入れた後にoptionで出力した後の、myDate.setMonth(mt);がなにをしているのかちょっと分からないかな。。。 でもきっと良く見ていけば理解できると思います 本当にありがとうございました。

その他の回答 (3)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.4

後から変更するパターンが出てないようなので。 <HTML> <HEAD> <SCRIPT language="JavaScript"> <!-- function set_option() {   var n = 4;        // 月数:ここを変更する時は、<OPTION>の数も変更すること   var date = new Date();   with (document.f.s) {     for (var i = 0; i < n; i++) {       var mon = date.getMonth() + 1;       options[i].value = options[i].text = mon;       date.setMonth(mon);     }   } } //--> </SCRIPT> </HEAD> <BODY onLoad="set_option()"> <FORM name="f">  <SELECT name="s"><OPTION><OPTION><OPTION><OPTION></SELECT> </FORM> </BODY> </HTML> ※動作確認 : IE5.0 / NN4.73 ※見やすくするため全角空白を使用しているので、コピーの際はタブなどに置き換えて下さい。

masaichi1212
質問者

お礼

書きこみありがとうございました!! どうさ確認するのにコピペして動かなかったので、言われたとおり スペースをタブに直したら動きました。 全角スペースってだめなんですね。 ホントまだなんもできないんでWITH句の意味が詳しくはわかりませんでしたが だいたいこうやるものなんだなって、見ていて理解できました。 人それぞれたくさんやりかたがあるんですね ありがとうございましたleaz024さん。

noname#99638
noname#99638
回答No.2

下記のプログラムの訂正です >  document.write('<option>'+showmonth[i]+'')     ↓   document.write('<option>'+showmonth[i])  として下さい。最後の「+''」がいりません。

noname#99638
noname#99638
回答No.1

JavaScriptでのコンボボックスの作り方を教えてほしいということで良いでしょうか? ということでしたら、次のコードでは、参考になりませんか? <SCRIPT LANGUAGE="JavaScript"> <!-- //表示させたい月を配列に入れておきます  showmonth = new Array()  showmonth[0]="10"  showmonth[1]="11"  showmonth[2]="12"  showmonth[2]="1"  //表示部分です  document.write('<form><select name="myselect">')  for(i=0;i<showmonth.length;i++){   document.write('<option>'+showmonth[i]+'')  }   document.write('</select></form>') //--> </SCRIPT> 月を配列に入れる部分が分からなければ、また返事下さい。

masaichi1212
質問者

お礼

kana-tan最初の書きこみありがとうございました 意味合い的には上記の2名の方のような形にしたかったのですが Array配列を使っているのはkana_tanさんだけだったので よくよくソースを見させてもらいました。 …んで残念なんですけれど、うまく動いてくれませんでした。 追加項目の+を消すのもやったのですが、「文字が違います」とか エラーがでてしまいました。 僕も見てて「え?これでいいんじゃないの?」って未熟ながらも思ったので 納得がいってません。 win98 IE5.0   環境とか関係ないですよねぇ…。 ーん、でも参考になりました、ありがとうございました。 またなにかありましたら宜しくお願いします!! わからないことだらけなので、近い内まち出没することになると思うので…(笑) それでは!!

関連するQ&A

  • コンボボックスの位置取得

    今エクセルのVBAでプログラムを組んでいます。 セルA1の位置にコンボボックスを配置して コンボボックスの矢印をクリックした時に コンボボックスの配置を取得したいのですが どうすればいいのでしょうか? 上記の例で言えば コンボボックスをクリックすると列、行 (1,1)を数字で取得するようにする。

  • コンボボックスに日付を表示する

    現在、VB.netを勉強中です。 コンボボックス内に今日から一週間分の日付を表示したいのですが、上手く行きません。 Dim dtToday As DateTime = DateTime.Today ComboBox1.Items.Add(dtToday.ToString()) と書いたところ現在の日付を取得しコンボボックス内に 2013/5/28 00:00 と表示されています。 これを時刻を表示させず(2013/5/28 のみ表示)、For文を用いて一週間分表示させたのですが、どのようにすればよいでしょうか? 分かる方がいれば、よろしくお願いします。

  • コンボボックス1の条件でコンボ2選択肢をクエリで動的に取得したい

    早速ですが、現在PHP&Javascriptでサイト構築中です。 その中で、コンボボックス1で選択した条件でコンボボックス2の 選択肢を動的に変化させたいのですが、画面ロード時に全てのパターン を読み込むのではなく(これはサンプルを見つけました)、 コンボ1選択時にクエリを発行してコンボ2の選択肢を取得して 反映させることは可能でしょうか。 可能であれば、具体的な実現方法をご教示願えませんでしょうか。 未熟故、的外れな質問でしたらご指摘下さい。 よろしくお願いいたします。

  • コンボボックスについて

    コンボボックスで値を入れておきそこからコンボがスタートできるようにしたいと思っています。 具体的には時間の数値をコンボボックスで用意します。 時間を取得するプログラムを入れ込み、画面が出た時点で現在の時間をコンボボックスの時間数値で選択されている格好にしたいのです。これはいつも同じ数字ではなく時間によって選択されているコンボボックスの数値が異なるという事になります。 どうかサンプルコードなどありましたら教えて下さい。 かなり苦戦しました。

  • コンボボックスの値がうまく取得出来ません。

    VC++ MFCを使用しています。 コンボボックスのリストから項目が選択されるたびに その値を元にリストを更新しようとしているのですが、 コンボボックスのリストが変更されたイベント OnCbnSelchangeComboAlmselect() の中で現在の表示値を m_comBoxAlmSelect.GetWindowText(str); で取得しているのですが、 strに最新の値ではなく、選択する前の値が取得されてしまいます。 使用するイベントを間違えているのでしょうか?

  • 連想配列を使ってコンボボックスを設定したい

    JavaScriptの初心者です。 var cd_0001 = new Object(); cd_0001["0001"]="アフリカ"; cd_0001["0002"]="南アメリカ"; cd_0001["0003"]="カリブ海/南アメリカ"; cd_0001["0004"]="アジア"; cd_0001["0005"]="オセアニア"; 上記のような連想配列があります。 これを使って以下のようなコンボボックスを 作りたいのです。 <select name="cmb"> <option value="0001" selected>アフリカ</option> <option value="0001">フィルター</option> <option value="0002">南アメリカ</option> <option value="0003">カリブ海/南アメリカ</option> <option value="0004">アジア</option> <option value="0005">オセアニア</option> </select> コンボボックスを作成する部分はネットで検索し 見つけました。 ですが、連想配列から全てのKEYと値を 取得することができません。 どのようにすれば取得することができるのでしょうか? 意味わかりますか? 説明がわかりにくく申し訳ございません。 よろしくお願いします。

  • AndroidのPhoneGapのコンボの基本

    コンボのアイテム選択直後に発生するイベントでJavascriptの$('#formselecttag1 option:selected').val()で選んだアイテムの値が取得できるみたいなのですが、 これで取得できるのは<option value=1>2の場合、1と2にどちらが取得できるのでしょうか? また、それで取得できない方の値を取得するための方法も教えてください。

    • ベストアンサー
    • Java
  • ExcelVBAでコンボボックスを選択不可にする

    ExcelVBAで初期表示させたときにコンボボックスが選択できないようにするにはどうしたらいいか教えて下さい。 オプションボタンが4個あり、コンボボックスが3個あります。配置のイメージは以下の通りです。 <配置イメージ> ○オプションボタン1 ○オプションボタン2【コンボボックス1】 ○オプションボタン3【コンボボックス2】 ○オプションボタン4【コンボボックス3】 <今の状態> (1)初めに開いたときはどのコンボボックスもクリックできる (2)「オプションボタン1」を選択すると、全てのコンボボックスがクリックできない (3)「オプションボタン2」を選択すると、コンボボックス1が選択できるが、他のコンボボックス2と3は選択できない。 (4)「オプションボタン3」を選択すると、コンボボックス2が選択できるが、他のコンボボックス1と3は選択できない。 (5)「オプションボタン4」を選択すると、コンボボックス3が選択できるが、他のコンボボックス1と2は選択できない。 今の状態の(1)を改善したく、どなたか教えていただきたくお願い致します。

  • HTMLのコンボボックスとの関連

    HTMLの同ページ内にコンボボックスAとコンボボックスBがあるとして、 <!-- JavaScript部------ --> <script language="javascript"> <!--// function cmdCtr() { if (document.forms[0].A.value=='a2'){ document.forms[0].B.disabled=true; document.forms[0].B.selectedIndex=0; document.forms[0].B.value="b1"; }else{ document.forms[0].B.disabled=false; } } //--> </script> <!-- HTML部----------- --> <FORM> <SELECT name="A" onChange="cmdCtr();"> <OPTION value="a1">a1</OPTION> <OPTION value="a2">a2</OPTION> <OPTION value="a3">a3</OPTION> </SELECT> <SELECT name="B"> <OPTION value="b1">b1</OPTION> <OPTION value="b2">b2</OPTION> <OPTION value="b3">b3</OPTION> </SELECT> </FORM> 以上のようなJavaScriptを記述しました。しかし、上記の流れ通りならばa2を選択するとBボックスが選択出来なくなり、Bボックスのb1の値が自動でサーブレットに飛ぶはずなのですが、エラーが起きてしまいます。書き方が悪いのでしょうか? ちなみに、AボックスBボックス両方がきちんと選択されている場合はエラーは起きません。

  • コンボボックスの連動

    コンボボックスの連動を実現したいです。 コンボボックスがAとBの2個あります。 Aにメーカーをセット 例) 1 エプソン 2 キャノン 3 HP Bに機種名をセット 例)Aでエプソンを選択したとき 1 EPシリーズ 2 PMシリーズ 例)Aでキャノンを選択したとき 1 PIXUSシリーズ 2 Sateraシリーズ コンボボックスAの選択内容により コンボボックスBの内容を変更したいです。 各A,Bの選択した値(1、2)も取得したいです。 よろしくお願いします。