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

タイトルの通り、月を取得して<option>で作ったコンボに
その月から3ヶ月分だけ出したいんですけれど

(例)現在10/17

だとすると10.11.12.1月だけをコンボに出したいんです。

javascriptで月の取得は分かったのですが、コンボへの挿入が仕方が分かりません。

どうにか仕方ありますでしょうか?

A 回答 (4件)

こんばんは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で動作確認済み。
がんばってくださいね。
    • good
    • 0
この回答へのお礼

xruzさんありがとうございます!!

頭の領域が少ない僕にはxruzさんの提案して頂いた
ソースは理解しやすくて助かりました。

分かりやすいんですけれど、一部mt=myDate.getMonth()で月を取得して
ループするたびに1を加えたものをmtに入れた後にoptionで出力した後の、myDate.setMonth(mt);がなにをしているのかちょっと分からないかな。。。

でもきっと良く見ていけば理解できると思います

本当にありがとうございました。

お礼日時:2001/10/18 09:42

後から変更するパターンが出てないようなので。



<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
※見やすくするため全角空白を使用しているので、コピーの際はタブなどに置き換えて下さい。
    • good
    • 0
この回答へのお礼

書きこみありがとうございました!!

どうさ確認するのにコピペして動かなかったので、言われたとおり
スペースをタブに直したら動きました。

全角スペースってだめなんですね。

ホントまだなんもできないんでWITH句の意味が詳しくはわかりませんでしたが
だいたいこうやるものなんだなって、見ていて理解できました。

人それぞれたくさんやりかたがあるんですね

ありがとうございましたleaz024さん。

お礼日時:2001/10/18 09:34

下記のプログラムの訂正です



>  document.write('<option>'+showmonth[i]+'')
    ↓
  document.write('<option>'+showmonth[i])

 として下さい。最後の「+''」がいりません。
    • good
    • 0

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>

月を配列に入れる部分が分からなければ、また返事下さい。
    • good
    • 0
この回答へのお礼

kana-tan最初の書きこみありがとうございました
意味合い的には上記の2名の方のような形にしたかったのですが
Array配列を使っているのはkana_tanさんだけだったので
よくよくソースを見させてもらいました。

…んで残念なんですけれど、うまく動いてくれませんでした。
追加項目の+を消すのもやったのですが、「文字が違います」とか
エラーがでてしまいました。

僕も見てて「え?これでいいんじゃないの?」って未熟ながらも思ったので
納得がいってません。
win98 IE5.0  
環境とか関係ないですよねぇ…。


ーん、でも参考になりました、ありがとうございました。

またなにかありましたら宜しくお願いします!!
わからないことだらけなので、近い内まち出没することになると思うので…(笑)

それでは!!

お礼日時:2001/10/18 09:49

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