過去記事にあった下記のプルダウンを使用させて頂いております。
選択できる項目を「くだもの→りんご→●●」ともうひとつ追加
するにはどうしたらよいのでしょうか?
どうぞよろしくお願いします。
<html>
<head>
<script>
<!--
/* データ定義部(ここをDB検索結果から生成) */
var dataMain = new Array(
new Array("1", "くだもの"),
new Array("2", "やさい"),
new Array("3", "さかな")
);
var dataSub = new Array(
new Array(
new Array("1", "りんご"),
new Array("2", "みかん"),
new Array("3", "いちご")
),
new Array(
new Array("1", "にんじん"),
new Array("2", "だいこん"),
new Array("3", "きゅうり")
),
new Array(
new Array("1", "さば"),
new Array("2", "いわし"),
new Array("3", "さんま")
)
);
// プルダウンを初期化
function initSel() {
var selMain = document.forms[0].elements["selMain"];
// メインのプルダウンを初期化
setDataToSel(selMain, dataMain);
// 先頭を選択
selMain.selectedIndex = 0;
// 先頭を選択したのと同じ処理
changeSel();
}
// プルダウンを選択したときの処理
function changeSel() {
var selMain = document.forms[0].elements["selMain"];
var selSub = document.forms[0].elements["selSub"];
// メインのプルダウンの選択値によりサブの選択肢データを取得
var data = dataSub[selMain.selectedIndex];
// サブのプルダウンの選択肢を入れ換え
setDataToSel(selSub, data);
}
// データを選択肢にセット
function setDataToSel(sel, data) {
// 選択肢をいったんクリア
for(var i = 0 ; i < sel.options.length ; i++) {
sel.options[i] = null;
}
// 新しい選択肢を作る
for(var i = 0 ; i < data.length ; i++) {
var dt = data[i];
sel.options[i] = new Option(dt[1], dt[0]);
}
}
//-->
</script>
</head>
<body onLoad="initSel()">
<form>
<p>
メイン:
<select name="selMain" size="1" onChange="changeSel()"></select>
</p>
<p>
サブ:
<select name="selSub" size="1"></select>
</p>
</form>
</body>
</html>
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>TEST</title>
<body>
<form>
<p>
メイン:
<select name="selMain" size="1" onChange="changeSel()"></select>
</p>
<p>
サブ:
<select name="selSub" size="1" onChange="changeSel2()"></select>
</p>
<p>
さらにサブ:
<select name="selSub2" size="1"></select>
</p>
</form>
</body>
<script type="text/javascript">
var dataMain = [ [ "1", "くだもの"],[ "2", "やさい"],[ "3", "さかな"]];
var dataSub = new Array(
new Array(
new Array("1", "りんご"),
new Array("2", "みかん"),
new Array("3", "いちご")
),
new Array(
new Array("1", "にんじん"),
new Array("2", "だいこん"),
new Array("3", "きゅうり")
),
new Array(
new Array("1", "さば"),
new Array("2", "いわし"),
new Array("3", "さんま")
)
);
var dataSub2 = [
[
[["1", "ふじ"],["2", "むつ"],["3", "つがる"]],
[["1", "夏みかん"],["2", "きんかん"],["3", "ぽんかん"]],
[["1", "栃おとめ"],["2", "くさりかけ"],["3", "白カビつき"]]
],
[
[["1", "1号"],["2", "赤2号"],["3", "やっぱりくさりかけ"]],
[["1", "桜島だいこん"],["2", "かいわれ"],["3", "おでん用"]],
[["1", "漬物用"],["2", "わかんねぇ~"],["3", "あっはっは"]]
],
[
[["1", "缶詰"],["2", "しめ鯖"],["3", "味噌似"]],
[["1", "大きめ"],["2", "ちっちぇ~"],["3", "あぁ~ボキャブラリーない!"]],
[["1", "のまんま"],["2", "からくり"],["3", "・・・。"]]
]
];
var selMain = document.forms[0].elements["selMain"];
var selSub = document.forms[0].elements["selSub"];
var selSub2 = document.forms[0].elements["selSub2"];
selMain.selectedIndex = 0;
setDataToSel(selMain, dataMain);
changeSel();
function changeSel() {
setDataToSel(selSub, dataSub[selMain.selectedIndex]);
setDataToSel(selSub2, dataSub2[selMain.selectedIndex][ selSub.selectedIndex]);
}
function changeSel2() {
setDataToSel(selSub2, dataSub2[selMain.selectedIndex][ selSub.selectedIndex]);
}
function setDataToSel(sel, data) {
var i;
for(i = 0 ; i < sel.options.length ;) sel.options[i++] = null;
for(i = 0 ; i < data.length ; i++) sel.options[i] = new Option(data[i][1], data[i][0]);
}
</script>
早速ご回答頂きありがとうございます。
選択できるプルダウンをもうひとつ追加する場合、どのようにコードを
書いたらよいのでしょうか?
もし差し支え無ければお教え下さいますようお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VSCODE[Python]の設定について
-
JavaScript/HTML5での図形の描写
-
Google Apps Script で添付ファ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
このプログラムに、王手をかけ...
-
37分間のカウンター
-
javascriptでiframeのURL変更は?
-
C#OpenCv V4にのエラーに関する...
-
翌月を取得するGASが分かりません
-
表示されている地図の大きさに...
-
FCKeditorで画像登録ができませ...
-
<a>タグのテキストを取得
-
関数でy=g(x)のgとは何の略です...
-
Linux バイナリ実行できない "...
-
オブジェクト指向のsetTimeout...
-
javascriptで行を抽出したいです。
-
form内のinputタグのみロックす...
-
Boolean型配列中のTrueの有無を...
-
お世話になります。contentedit...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#OpenCv V4にのエラーに関する...
-
google apps scriptの終了のさせ方
-
ジェネレーターの作り方
-
ASP.NETのコントロールの値をJa...
-
C#で、ContextMenuStripに動的...
-
GASでundefinedエラーが出ます
-
なぜmatchメソッドがエラーにな...
-
ASP.NET MVCでObjectをjsに渡す
-
翌月を取得するGASが分かりません
-
gas スプレッドシートがアクテ...
-
シンプルなweb版スタンプラリー...
-
html javascript リンク先アド...
-
ローカルにあるファイルを検索...
-
javascriptでiframeのURL変更は?
-
javaScript textareaの一行あた...
-
イベントが初めの一回しか起き...
-
C# 演算 奇数と偶数 表現の仕方
-
JavaScriptを使って毎日決まっ...
-
googleスプレッドシートのApps ...
-
条件に応じて座席表をつくりた...
おすすめ情報