プルダウンメニューで、本日から4日後 から 1か月先までの日付をYYYY/MM/DDの形式で生成して表示されたいのですが、それをvalueに入れる方法が分かりません。
下記までは書いてみたんですが、
<option value="???">のところに何と書いていいのか分からなくなってしまいました。。
for文などループ処理で書いた方がキレイだとは思いますが、
イマイチ分からなかったので、併せて御教授いただければと思います。
<script type="text/javascript">
document.write(AddDate(+4)+'~'+ AddDate(+30));
function AddDate( n ){
var day = new Date( (new Date).getTime()+n*24*60*60*1000);
return (day.getFullYear() + "/" + (day.getMonth() + 1) + "/" + day.getDate());
}
</script>
<select name="delidate">
<option value=""><script type="text/javascript">document.write(AddDate(+4));</script></option>
<option><script type="text/javascript">document.write(AddDate(+5));</script></option>
<option><script type="text/javascript">document.write(AddDate(+6));</script></option>
<option><script type="text/javascript">document.write(AddDate(+7));</script></option>
<option><script type="text/javascript">document.write(AddDate(+8));</script></option>
<option><script type="text/javascript">document.write(AddDate(+9));</script></option>
<option><script type="text/javascript">document.write(AddDate(+10));</script></option>
<option><script type="text/javascript">document.write(AddDate(+11));</script></option>
<option><script type="text/javascript">document.write(AddDate(+12));</script></option>
<option><script type="text/javascript">document.write(AddDate(+13));</script></option>
<option><script type="text/javascript">document.write(AddDate(+14));</script></option>
<option><script type="text/javascript">document.write(AddDate(+15));</script></option>
<option><script type="text/javascript">document.write(AddDate(+16));</script></option>
<option><script type="text/javascript">document.write(AddDate(+17));</script></option>
<option><script type="text/javascript">document.write(AddDate(+18));</script></option>
<option><script type="text/javascript">document.write(AddDate(+19));</script></option>
<option><script type="text/javascript">document.write(AddDate(+20));</script></option>
<option><script type="text/javascript">document.write(AddDate(+21));</script></option>
<option><script type="text/javascript">document.write(AddDate(+22));</script></option>
<option><script type="text/javascript">document.write(AddDate(+23));</script></option>
<option><script type="text/javascript">document.write(AddDate(+24));</script></option>
<option><script type="text/javascript">document.write(AddDate(+25));</script></option>
<option><script type="text/javascript">document.write(AddDate(+26));</script></option>
<option><script type="text/javascript">document.write(AddDate(+27));</script></option>
<option><script type="text/javascript">document.write(AddDate(+28));</script></option>
<option><script type="text/javascript">document.write(AddDate(+29));</script></option>
<option><script type="text/javascript">document.write(AddDate(+30));</script></option>
</select>
分かり難く申し訳ないですが、宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
No2です。
初期状態の指定(HTMLでのselected)は、elm.options[index].selected = trueなどで設定しておくのが正解かも知れませんが、指定しないとブラウザ側で最初のオプションを自動的に表示するようになっているみたいですね。
いずれにしても、リストの最初がデフォルトになっているほうがいいでしょうから・・・
<案1>
スクリプトでループで書き出す前にoption[0]にデフォルトの内容を設定しておく。
(方法はループ内で設定しているのと同じです。No1様が上げられている参考サイトも参考にしてください。)
<案2>
HTMLのオプションの最初に
<option value="default" selected>-------</option>
などをいれておいて、スクリプトでの書き換えはオプションの2番目からにする。
スクリプトがオフの場合のことも考えると、案2が良いのではと思います。
この回答への補足
何度も申し訳ありません..
私も案2が良いと思い、オプションの2番目からスクリプトの書き換えをしようと思い、#1様に教えてもらったサイトなど参考にして色々と試しているんですがうまく表示されません。。
伝えられていた仕様が変更になってしまったので、また別の質問を設定して、改めてご質問しようと思います。
4日以降ではなくて、4営業日(土日祝日休み)以降の日付で出力するとの事で変更になりました!
またデフォルトで
<option value="default" selected>-------</option>
が表示される形を希望しています。
またご機会がありましたら何卒よろしくお願いします。
No.2
- 回答日時:
とりあえず、こんな感じ?
<html>
<head>
<script type="text/javascript">
window.onload = function() {
var d, str, elm = document.getElementById('delidate');
var day = new Date();
day.setMilliseconds(4*24*60*60*1000);
for (d=0; d<26; d++) {
str = day.getFullYear() + '/' + (day.getMonth() + 1) + '/' + day.getDate();
elm.options[d] = new Option(str, str);
day.setMilliseconds(24*60*60*1000);
}
}
</script>
</head>
<body>
<select name="delidate" id="delidate">
<option value="4日後">4日後</option>
<option value="5日後">5日後</option>
・・・・・・
<option value="30日後">30日後</option>
</select>
</body>
</html>
HTML内のoptionタグを省略しても動きますが、ユーザがjavascriptをオフにしているとオプションが何も表示されなくなってしまうので、デフォルトとして4日後などの表示をするようにしています。
(日付には変換されませんが、表示はされる → 後の処理に影響しますが…)
想像ですが、この結果を処理するものをサーバ側のCGIやphpなどで用意なさっていると思いますが、どうせなら、このセレクタの出力もサーバサイドの処理で出力した方がよいのではないでしょうか。
この回答への補足
ご回答ありがとうございます!
まさにその通りです。とても助かります。ありがとうございました!
>このセレクタの出力もサーバサイドの処理で出力した方が
おっしゃる通りサーバー側で出力できれば良いのですがASPで融通のきかないシステムなのでJsで実装しようと思っております。
一点だけ追加でお願いがあるのですが、、
上記のサンプルで頂いたコードだと、デフォルトは4日後の日付ですが
--------(点線)
をデフォルト表示させる事は可能でしょうか??
もしfujillin様が宜しければ教えてください。
宜しくお願いいたします。
No.1
- 回答日時:
javascript DOM関数 を調べてみるとよいと思います。
(参考)
http://f32.aaa.livedoor.jp/~azusa/?t=js&p=select …
そこにずばりのサンプルがあります。
http://f32.aaa.livedoor.jp/~azusa/?t=js&p=select …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptで変数を組み込みたい
-
selectタグで日付を生成
-
document.getElementById
-
ページ内文字列の置換について
-
ホームページを見る度にTOP画面...
-
<a href="#" …>の意味を教えて...
-
javascriptとApacheの設定
-
HTMLソースからURLだけを抜き出...
-
スマホ上で、左右スワイプで次...
-
【SSI】include file、include ...
-
showModalDialogで開いた画面か...
-
JavaScript内の関数を別のファ...
-
getElementsByNameで要素が取得...
-
ポップアップウィンドウの位置
-
SQLのWHEREで全てを質問する方法
-
cssにjavascriptを入れる?呼び...
-
ウインドウを縮小しても文字を...
-
javascriptファイルは1つに統...
-
アンカーをクリックしても遷移...
-
フレームサイズの変更について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
¥マークの検索について
-
document.getElementById
-
イベントハンドラを使わずに実...
-
location.hrefが動かない・・・
-
カウントダウンとカウントアッ...
-
CGIフォーム一定時間過ぎる...
-
動的生成したscriptタグが実行...
-
history.back スクリプトオフ...
-
JavaScriptで、参照する階層を...
-
javascriptの中にjavascript
-
スクロールせずに見えるコンテ...
-
外部リンクについて質問です。
-
"<scr"+"iptこれって何?
-
ページ内文字列の置換について
-
javascriptで変数を組み込みたい
-
JavaScriptの勉強を始めました。
-
【Javascript】Cookie有効期限
-
ネスケの時リロード
-
外部jsからdocument.writeする...
-
HPビルダーで『最終更新日時』...
おすすめ情報