次のような[年][月]が分かれたドロップダウンメニューがあります。
ここで選ばれた値をPHPに渡し、PHP内で yearとmonthを結合し、
6桁の検索条件として大小評価したいです。
[1999[▼]]年 [01[▼]]月
<select name="year">
<option value="" selected>無指定
<option value="1989">1990(平成元)
<option value="1990">1990(平成02)
:(略)
<option value="2005">2005(平成17)
<option value="2006">2006(平成18)
</select> 年
<select name="month">
<option value="" selected>無指定
<option value="01">01
<option value="02">02
:(略)
<option value="11">11
<option value="12">12
</select>月
これをjavascriptで次のように動作させたいのですが(IE6限定で十分です)。
(1) 年が「無指定」である間、月は常にdisable。年が選ばれている間、月は常にactive。
(2) 年が選ばれた際に、強制的に月を01(規定値)にセット。
(3) 年で無指定が選ばれたら、月も無指定&disableにセット。
・・・という具合に動作させたいです。
要は、必ず6桁(yyyymm)の値か空白値をPHPに渡せればよいので、
年月の両者がきちんと選択されている場合のみ、検索ボタン(POST)の動作を
抑制できれば、alertなどでもかまわないのですが・・・
大変あつかましいですが、よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
とりあえずこんな感じすかね?
(IEの方言はいってるので、ほかのブラウザでの動作まで考えれば調整必要)
<form>
<select name="year" onChange="changeYear(this)">
<option value="" selected>無指定
<option value="1989">1989(平成元)
<option value="1990">1990(平成02)
:(略)
<option value="2005">2005(平成17)
<option value="2006">2006(平成18)
</select> 年
<select name="month" disabled="true">
<option value="" selected>無指定
<option value="01">01
<option value="02">02
:(略)
<option value="11">11
<option value="12">12
</select>月
</form>
<script language="JavaScript">
function changeYear(num){
if (num.value==""){
num.form.month.disabled=true
num.form.month.selectedIndex=0
}else{
num.form.month.disabled=false
num.form.month.selectedIndex=1
}
}
</script>
有用なスクリプト、ありがとうございました。
早速組み込ませていただきました。
年を選択後、セットされた01を無指定にすると
4桁でも渡せてしまうようでしたが、
わかりやすく組んでいただけたので
何とか改善できました。
本当に感謝にたえません。ありがとうございました。
No.2
- 回答日時:
#1さんのはエラーが出ますね(^^;;
とりあえず、Formのnameは"InputForm"にしておきます。
<SCRIPT LANGUAGE="JavaScript">
<!--
function CheckYear()
{
with(document.InputForm){
if( year.options[year.selectedIndex].value == "" ){
month.selectedIndex = 0;
month.disabled = true;
} else {
month.selectedIndex = 1;
month.disabled = false;
}
}
}
//-->
</SCRIPT>
BODY部
<BODY onLoad="CheckYear();">
SELECT部(year)
<SELECT name="year" onChange="CheckYear();">
onLoadで実行するのは、開いた時に年が
無指定なので、その場合も月をdisabledに
するためです。
#monthを最初からdisabledにしておけば
#onLoadは不要です。
大変有益なレスありがとうございました。
既に組み込んでしまった後で(^^;
エラーにもなぜかならなかったですが、
ご指摘のように修正させていただきました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript 1度きりではなく、繰り返し、挙動が変わるようにしていただきたいです。 1 2022/07/03 15:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
プルダウンメニューを選択した...
-
selectを変更不可にしたい
-
JavaScriptで<select>の<option...
-
select要素のvalueを配列で取得...
-
全てのselect要素をデフォルト...
-
スマホのフォームでのselect複...
-
複数のプルダウンを1つにまとめ...
-
名前と名字をそれぞれ比較して...
-
<input>の選択肢をプルダウンメ...
-
javascriptでセレクトボックス...
-
disableとすることなく、ユーザ...
-
scriptの日付計算について
-
3つのselectでURLパラメータを...
-
セレクトボックスの値を取得し...
-
Selectボックスの一覧表示方法
-
3つの連動したプルダウンメニュ...
-
「年」「月」二つのドロップダ...
-
return falseが効かない
-
1度きりではなく、繰り返し、挙...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
全てのselect要素をデフォルト...
-
javascriptでセレクトボックス...
-
Selectボックスの一覧表示方法
-
JavaScriptで<select>の<option...
-
プルダウン選択を変更すると、...
-
select要素のvalueを配列で取得...
-
selectを変更不可にしたい
-
<input>の選択肢をプルダウンメ...
-
ラジオボタンとプルダウンを連...
-
【JS】selectでchangeした時の...
-
VBScriptでHTMLのセレクトボッ...
-
リストボックス内の重複したも...
-
同じ名前のセレクトがある場合...
-
プルダウンの値によって活性・...
-
selectが変更されたらnameを指...
-
【javascript】連想配列からセ...
-
3つのselectでURLパラメータを...
-
複数のプルダウンを1つにまとめ...
-
selectボックスで選択数を制限...
-
セレクトボックスで配列を呼び...
おすすめ情報