-PR-
解決済み

HTMLのコンボボックスとの関連

  • 困ってます
  • 質問No.972421
  • 閲覧数455
  • ありがとう数5
  • 気になる数0
  • 回答数4
  • コメント数0

HTMLの同ページ内にコンボボックスAとコンボボックスBがあるとして、

<!-- JavaScript部------ -->
<script language="javascript">
<!--//
function cmdCtr()
{
if (document.forms[0].A.value=='a2'){
document.forms[0].B.disabled=true;
document.forms[0].B.selectedIndex=0;
document.forms[0].B.value="b1";

}else{
document.forms[0].B.disabled=false;
}
}
//-->
</script>

<!-- HTML部----------- -->
<FORM>
<SELECT name="A" onChange="cmdCtr();">
<OPTION value="a1">a1</OPTION>
<OPTION value="a2">a2</OPTION>
<OPTION value="a3">a3</OPTION>
</SELECT>
<SELECT name="B">
<OPTION value="b1">b1</OPTION>
<OPTION value="b2">b2</OPTION>
<OPTION value="b3">b3</OPTION>
</SELECT>
</FORM>

以上のようなJavaScriptを記述しました。しかし、上記の流れ通りならばa2を選択するとBボックスが選択出来なくなり、Bボックスのb1の値が自動でサーブレットに飛ぶはずなのですが、エラーが起きてしまいます。書き方が悪いのでしょうか?
ちなみに、AボックスBボックス両方がきちんと選択されている場合はエラーは起きません。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル7

ベストアンサー率 92% (12/13)

単純にこんな感じではどうでしょう?
<Form>のonSubmit時に、submitData()関数を実行させるだけです。
参考になりますか?

function submitData(){
document.forms[0].B.disabled=false;
}

<FORM action="○○○.html" onSubmit="submitData()">
お礼コメント
noname#15844

度々のご回答、有難う御座います。
非常に参考になります。
投稿日時 - 2004-08-23 19:45:11

その他の回答 (全3件)

  • 回答No.1
レベル10

ベストアンサー率 47% (66/140)

disabledをtrueにしているからだと思います。

disabledの処理を削除してやってみてください。

もし、Aでa2を選択したときにBがb1しか選択できない
ようにしたいのであれば、BでもonChangeを
呼べば実現できます。
補足コメント
noname#15844

回答有難う御座いました。
disabledは出来れば使いたいんですが無理ですか?理想としては、a2を選択時にボックスBが白黒になって操作不可能になり、その状態で送信するとサーブレットにa2とb1の二つの情報を渡せるという形です。
投稿日時 - 2004-08-23 14:08:28


  • 回答No.2
レベル10

ベストアンサー率 47% (66/140)

#1です。

hiddenを使用して変数を設定すれば可能です。

例えば
<input type="hidden" name="HB" value="">
のような行をFORMに追加しておき、
サーブレットへ移行するときのイベントに
document.forms[0].HB.value = document.forms[0].B.value
を実行すればサーブレットにはAの値とHB(=B)の値が
渡ります。

サーブレット側をA,Bにしたい場合は、hiddenをB、
ボックスをHBにすればよいと思います。
お礼コメント
noname#15844

再びのご回答有難う御座いました。さっそく試してみます。
投稿日時 - 2004-08-23 15:45:35
  • 回答No.3
レベル7

ベストアンサー率 92% (12/13)

『disabled』が使いたいのでしたら、送信する直前に
 document.forms[0].B.disabled=false;
を実行してから送信するって言うのはどうでしょう?
一番簡単だと思うのですが、少しでも参考になれば幸いです。
補足コメント
noname#15844

回答有難う御座いました。
送信する直前にdocument.forms[0].B.disabled=false;を実行するというのは、具体的にどのように記述すれば良いのでしょうか?送信ボタンの部分に手を加える形ですか?
投稿日時 - 2004-08-23 15:45:45
このQ&Aで解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

-PR-
ページ先頭へ