- - PR -
javascriptでプルダウン処理
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-11-14 21:21
プルダウンにて年、月、日を選択させて1月を選ぶと31日まで、2月を選ぶと28日まで・・・
というようにメニュー内の値を変化させたいのですが どのように条件を書けばよろしいのでしょうか?(うるう年対応です) | ||||||||
|
投稿日時: 2007-11-14 22:13
うるう年に対応したメソッドをサクっと作ればよろしいのではないでしょうか。
もっとカッコイイ方法がありそうですけど。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-11-15 22:36
じゃんぬねっと様ありがとうございます。
おかげで月を選んだ際の日数を得ることができました。 ですがそれをプルダウンメニューに反映させる方法が上手くいきません・・・ <select name="month" onChange="getDaysInMonth()"> で月を選択したらご教授いただいたgetDaysInMonthメソッドを呼び出して値を返しているのですがその直後に for(var v = 1 ;v <= daysInMonth[iMonth - 1];v++){ document.write("<option value=\"" + v + "\">" + v + "</option>") } と書いてプルダウンメニューを作ろうとしたのですがボックス内が真っ白でした。 daysInMonthの中に何も入ってないのでは?と思いメソッドを呼び出す前に あらかじめ値を格納させておくと格納させた値から変化せずreturnで返した値を持っていないようでした。 また、for文をメソッド内に書くと画面が切り替わって1234・・・というように表示されてしまいます。 私の力では改善方法が分からなかったためどなたかご教授をお願いいたします。 | ||||||||
|
投稿日時: 2007-11-15 23:28
javascriptを勉強してみてはいかがでしょうか?
NN4とか古いブラウザだと上手くいかないかも(そのへんの仕様うろ覚え) 上手くいかせる方法もあるけど、ググればすぐに引っかかる(確認済み)なので省略 | ||||||||
|
投稿日時: 2007-11-16 00:53
この会議室はJavaの話題であってJavaScriptは違うと思いますが。。
DOMという機能を使って、HTML要素の書き込みを行います。 量が多いとそれなりに重くなったりするので、 ・あらかじめ1〜28日までの日付をプルダウンメニューにHTMLで書いておき、 月末日の値によって29〜31日のoptionタグを追加。 ・あらかじめ1〜31日までの日付をプルダウンメニューにHTMLで書いておき、 月末日の値によって29〜31日のoptionタグを削除。 という風にループ回数を減らす工夫もあったほうがいいかも。 ただま、やりたいこと丸投げじゃなくてもちっと勉強した方がいいんじゃないかとは 思いますけれども。 | ||||||||
|
投稿日時: 2007-11-16 09:15
あらかじめ1〜28,1〜29,1〜30,1〜31のプルダウンを用意しておき、
月によってそれぞれを表示非表示するという方法も。 非表示時に同時にdisabledにしておけば、送信されるのは一つです。 selectedの処理もしないといけないけど。 | ||||||||
|
投稿日時: 2007-11-16 22:51
>あらかじめ1〜28,1〜29,1〜30,1〜31のプルダウンを用意しておき、
>月によってそれぞれを表示非表示するという方法も。 ああ、そっちの方がより軽くて実装も簡単ですね。 HTML上ではすべてdisable=trueにしておき、必要なプルダウンだけ JavaScriptでdisable=falseにすることになるかな? |
1