javascript 初心者です。
HP上で問い合わせページを作っています。
質問の内容によって入力項目を表示/非表示させるために以下のようなスクリプトを書きました。
q-1 を選んだ時は”名前”と”質問内容”を入力,q-2 を選んだ時は”名前”,”入力1”,”質問内容”を入力するという形式です。
質問内容の選択はプルダウンメニューから行います。
IE8以外では動くのですが、IE8だけ動きません。
どうすればよいかを教えて下さい。
<head>
略
<script type="text/javascript"><!--
function checkmenu( disp ) {
var a = disp ;
document.getElementById('basic-info').style.display = "block";
document.getElementById('question').style.display = "block";
switch(a){
case "select_q-1" :
document.getElementById('disp_q-2').style.display = "none";
break;
case "select_q-2" :
document.getElementById('disp_q-2').style.display = "block";
break;
}
}
-->
</script>
</head>
<body>
<略>
<select name="naiyou">
<option onclick="checkmenu('select_q-1')" value ="q-1">質問1<br>
<option onclick="checkradio('select_q-2')" value ="q-2">質問2<br>
<div id="basic-info" style="display:none">
<table class="aaa">
<tr>
<td class="aaa" width="30%" valign="top"><b>お名前:</b></td>
<td class="bbb" width="70%"><input type="text" name="name" size=30 maxlength=50 value=""></td>
</tr>
</table>
</div>
<div id="disp_q-2" style="display:none">
<table class="aaa" >
<tr>
<td class="bbb" width="30%" valign="top"><b>入力1:</b></td>
<td class="td_toumei" width="70%"><input type="text" name="nyuuryoku1" size=30 maxlength=50 value=""></td>
</tr>
</table>
</div>
<div id="question" style="display:none">
<table class="aaa">
<tr>
<td class="aaa" colspan="2"><b>質問内容: </b></td>
</tr>
<tr>
<td class="bbb" valign="top" colspan="2">
<textarea name="question" cols="60"rows="10"></textarea>
</td>
</tr>
<tr>
<td class="bbb" colspan="2">
<input type="hidden" name="language" value="j">
<input type="submit" value="送信">
<input type="button" name="del" value="本文 クリア" onclick="msgclear()">
</td>
</tr>
</table>
</div>
略
</body>
実際の質問の項目や入力内容はもう少し複雑ですが、おおまかにはこんな感じです。
プルダウンメニューで選択しても、IE8だけまったく動きません。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
No1です。
>初めに一番上のメニューを選択すると動いてくれません。
意味がいまいちちゃんと把握できないのだけれど、デフォルト表示のままという解釈をしました。
onchangeはその名の通り、内容が変更されたときに発生します。
デフォルト表示の時に動作しないという意味であるなら、そのような場合は、
1)初期の表示をデフォルト状態に合せておく
(スクリプトを実行して合せるか、CSSなどで合せておくかなど)
2)セレクトのデフォルト表示を「---」などのどちらでもないものにしておく
(場合によっては選択されたら、↑のオプションを消す)
のような対処をすればよいのではないでしょうか?
でも、それっていままでも同じだったのでは?
(changeにする前も、わざわざマウス操作しなければ何も起こらなかったはず)
>>初めに一番上のメニューを選択すると動いてくれません。
>意味がいまいちちゃんと把握できないのだけれど、デフォルト表示のままという解釈をしました。
その通りです。説明不足ですみません。
教えて頂いた方法で、どちらもできました。
いろいろな方法があるんですね。勉強不足ですね。
教えて頂いたことを、今後に活かそうと思います。
ありがとうございました。
No.1
- 回答日時:
<select>の閉じタグがないので、ブラウザによって表示のされ方が違います。
セレクタの場合はonclickではなく、onchangeでイベントを取得するのが普通では?
(IEではクリックだとイベントが発生しないみたい)
この回答への補足
ありがとうございます。
<select>の閉じタグは下記忘れで、実際には書いてありました。
おかげさまでonchangeを使ったら、IEでも動くようになりました。
ですが、初めに一番上のメニュー(ここでは”質問1”)を選択すると動いてくれません。ほかのメニュー(ここでは”質問2”)を選んだ後、”質問1”を選ぶときちんと動きます。
どうしてこのようなことになるのかが、わかれば教えて下さい。
<select name="naiyou" onchange="checkmenu( this.value )">
<option value ="q-1">質問1</option>
<option value ="q-2">質問2</option>
</select>
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字数を数える際に空白、改行...
-
チェックボックスのチェック処理
-
チェックボックス付きのテーブ...
-
document.getElementByIdがIE8...
-
ラジオボタンが選択されたらテ...
-
return trueとreturn falseの用...
-
プルダウン選択を変更すると、...
-
slickのレスポンシブ > center...
-
FormのonsubmitでJavaスクリプ...
-
onchangeイベントを強制的に発...
-
submitがおされた同時に JavaSc...
-
select要素のvalueを配列で取得...
-
Selectボックスの幅を自動で広...
-
HTMLファイル同士での値渡し
-
ラジオボタンの値でリンク先を...
-
ラジオボタンとプルダウンを連...
-
Selectの中身をfor文で入れる
-
JQuery selectが反映されない
-
onClickとsubmitの処理順序
-
確認ページからフォームページ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
複数のselect値で1つも選択され...
-
画面表示とともにtableの指定の...
-
localStorageでのcheckbox制御
-
文字数を数える際に空白、改行...
-
JavaScriptの「.querySelectorA...
-
Javascriptの電卓で最初の何も...
-
formで項目を連結したい
-
ラジオボタンが選択されたらテ...
-
javascriptで表(テーブル)の自...
-
横へスクロール
-
テーブル内のチェックボックス...
-
history.backの前に値をクリア...
-
java scriptで問題集を作りたい...
-
送信ボタン連打を抑止したいです
-
Java Scriptで・・・
-
フォームタグの中のラジオボタ...
-
【緊急】リアルタイムでエラー...
-
jQuery テキストボックス読み取...
-
JavaScriptを使って九九の表を...
おすすめ情報