3つ検索項目があるとします。
・企業名(テキストフィールド)
・業種名大(プルダウン)
・業種名小(プルダウン)
業種名大を選択した時に、その業種名大に関連する業種名小が表示されます。その時に、入力していた企業名が消えてしますのですが、これを、残す方法はないでしょうか?
プログラムはASPで製作しています。
おそらく「業種名大」のonChangeイベントに「???(企業名フォームの名前).text = ””;」といった感じの命令文が入っていると思うので、その一文をはずせば、「企業名」はクリアされなくなるはずです。
書き方が悪かったですかね。
onChangeイベントではなく、その中に含まれる「???(企業名フォームの名前).text = ””;」の一行を、というつもりで書いたのですが。
もし、そういう命令文がなようでしたら、ポイント不要です。
すみません。
その命令文の箇所はありません。
どういう処理をしているのかちょっとわかりにくいのでお答えしにくいですが、業種名大を選択した後にonchangeイベントでPOSTし、ASPで業種名小のプルダウンリストを整形し、HTML出力しているものと仮定してお答えします。
その場合はPOSTした業種名大の内容を業種大プルダウンの各optionとif文で比較し、一致すればselectedをoptionの中に記述しHTMLで書き出せば良いと思います。
http://www.mitsue.co.jp/case/design/h_193.html
<option selected = "***"> とは | HTML用語集 | ミツエーリンクス
ありがとうございます。
すみません。分かりにくいと思うのですが、業種名大から、業種名小を整形する箇所は完成しております。
消えてしまうのは、入力していた企業名(テキストフィールド)の部分です。
onchangeイベントで、おなじファイルに再度アクセスするので、企業名(テキストフィールド)が
消えてしまうのですが、これを何とか消さず(再表示)させたいのです。
次のように業種名大を選択時にonChangeで業種名小を変更すれば企業名が消えることはありません。
なぜonChange時にSubmitする必要があるのでしょうか?
<html>
<head>
<script language=”JavaScript”>;
var opt = {};
opt = {
’1’ : {’1’ : ’業種1’, ’2’ : ’業種2’, ’3’ : ’業種3’, ’4’ : ’業種4’},
’2’ : {’5’ : ’業種5’, ’6’ : ’業種6’, ’7’ : ’業種7’},
’3’ : {’8’ : ’業種8’, ’9’ : ’業種9’}
};
function changeSelect(sel) {
a2 = sel.form.a2;
a2.options.length = 0;
a1v = sel[sel.selectedIndex].value;
j = 0;
for (i in opt[a1v]) {
a2.options[j++] = new Option(opt[a1v][i], i, false, false);
}
}
</script>
</head>
<body>
<form action=”test.asp” method=”post”>
企業名 <input type=”text” name=”a3”>
業種名大 <select name=”a1” onChange=”changeSelect(this)”>
<option value=”1”>分類1</option>
<option value=”2”>分類2</option>
<option value=”3”>分類3</option>
</select>
業種名小 <select name=”a2”>
<option value=”1”>業種1</option>
<option value=”2”>業種2</option>
<option value=”3”>業種3</option>
<option value=”4”>業種4</option>
</select>
<input type=”submit” value=”検索”>
</form>
</body>
</html>
なるほど!
何とかできそうです。ありがとうございました。
「業種名大」のonChangeイベントを外さずに、「企業名」を残したたいのですが・・・。