
下記の2つの連動するセレクトメニューで最初の国名のプルダウンで「日本」を選択、次の都市名のプルダウンで「東京」を選択し、
その後ブラウザの戻るボタンで戻り後、再びページを表示させたり、または入力内容確認画面へ進みjavascriptのonclick="history.back()"で入力ページ(下記スクリプト記述ページ)に戻ると1つ目の国名のメニューは日本が表示されていますが、2つ目の都市名のメニューが空白になってしまいます。
そのため、都市名のプルダウンで東京を表示させるには、1つ目の国名のプルダウンを一度日本以外にしてから再度日本に表示させるといった動作が必要になってしまっています。
そこで、都市名のメニューを空白にさせずにそのまま表示させるように色々調べたのですが、解決策がありませんでした。
そこで、せめて両方のプルダウンともに「国を選択して下さい」にした状態にはできないかと考えております。
何か良い方法がありましたらば教えて頂けませんでしょうか?
<html>
<head>
<script type="text/javascript">
window.onload = function(){
document.getElementById("selMain").onchange = function(){
var selNo = this.selectedIndex;
var selObj = document.getElementById("selSub");
var optionData = [
["国名を選択してください,"],
["東京,tokyo","大阪,osaka","名古屋,nagoya"],
["ニューヨーク,ny","ロサンゼルス,la"]
];
var i, tmp = [];
while(selObj.hasChildNodes()) {
selObj.removeChild(selObj.firstChild);
}
for (var i=0; i<optionData[selNo].length; i++){
tmp = optionData[selNo][i].split(",");
selObj.options[i] = new Option(tmp[0], tmp[1]);
}
}
}
</script>
</head>
<body>
<form action="./enq.cgi" method="get" id="mainForm" name="mainForm">
<select id="selMain">
<option value="" selected>国を選択してください</option>
<option value="jp">日本</option>
<option value="usa">アメリカ</option>
</select>
<select id="selSub">
<option value="">国を選択してください</option>
</select>
</form>
</body>
</html>
No.2ベストアンサー
- 回答日時:
フォームの値は通常ならブラウザが記憶しているのですが、
「都市の選択」の方はロード時(JSで動的に追加する前)のoptionが1つしかないし、
そうでなくても動的にoptionを全部消しているし、
optionの値を書き換えただけでもリセットされるようなので、
cookieを使うしか方法はなさそうです。
アドバイスありがとうございます。
仰られる通りcookieを使い方法しかなさそうですが、最初にアドバイスを頂いた方法でも十分期待通りの動作をしてくれるので助かりました。
教えて頂きありがとうございました。
また、質問させて頂いた時にはよろしくお願いします。
No.1
- 回答日時:
wondow.onloadの時にもonchangeの内容を実行すればいいと思います。
↓一例ですが
window.onload = function(){
var e, l;
(l = function(el) {
var selNo = el.selectedIndex;
var selObj = document.getElementById("selSub");
var optionData = [
["国名を選択してください,"],
["東京,tokyo","大阪,osaka","名古屋,nagoya"],
["ニューヨーク,ny","ロサンゼルス,la"]
];
var i, tmp = [];
while(selObj.hasChildNodes()) {
selObj.removeChild(selObj.firstChild);
}
for (var i=0; i<optionData[selNo].length; i++){
tmp = optionData[selNo][i].split(",");
selObj.options[i] = new Option(tmp[0], tmp[1]);
}
})(e = document.getElementById("selMain"));
e.onchange = function() { l(this); };
}
ありがとうございます
教えて頂いた方法で希望通りの動作ができるようになりました!
ブラウザの戻るで戻ったり、onclick="history.back()"で入力画面に戻っても国名、都市名のプルダウンともに空白になることなく表示されました。
1点、教えて頂きたいのですが、onclick="history.back()"などで戻った場合、国名のプルダウンは先に選択した項目が表示されますが、都市名のプルダウンは一番上の都市(日本ならば東京、アメリカならニューヨーク)が表示されます。
これを国名のプルダウン同様に選択していたものを表示させることが可能なようならば、教えて頂けませんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQuery セレクトボックスで選択...
-
js セレクター書式
-
セレクトの値を取得できない
-
<textarea>にプルダウンを表示...
-
Selectボックスの幅を自動で広...
-
プルダウン 項目が多いので先頭...
-
リストボックスに動的な初期設...
-
【javascript・PHP】プルダウン...
-
プルダウンメニューの再選択時
-
フォームで開始時間と終了時間...
-
IE以外のブラウザで対応するには
-
javascriptでselectボックスの<...
-
JavaScript セレクトの中でfor...
-
HTMLコンボボックスへの項目追加
-
JavaScriptでプルダウンのサイ...
-
リストボックスの項目の順番を...
-
セレクトを全て選択されていな...
-
プログラムがうまく動きません...
-
JQuery selectが反映されない
-
return trueとreturn falseの用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Selectボックスの幅を自動で広...
-
プルダウン 項目が多いので先頭...
-
jQuery セレクトボックスで選択...
-
JQuery selectが反映されない
-
CSVファイルを読みこみ、プルダ...
-
【javascript・PHP】プルダウン...
-
Selectの中身をfor文で入れる
-
セレクトを全て選択されていな...
-
html selectの内容を初期値に戻す
-
現在時刻を取得してフォームのs...
-
selectメニューのselectedの位...
-
HTMLコンボボックスへの項目追加
-
セレクトの値を取得できない
-
フォームのメニューリストを外...
-
UWSCのIE操作でプルダウンを選...
-
プルダウンとテキストの連動
-
プルダウン選択の連動
-
セレクトメニューで選択された...
-
javascriptでの2つのプルダウン...
-
getElementsByNameについて
おすすめ情報