- 締切済み
getElementByIdではまってます・・・
以下のソースを書いて、Firefoxで実行すると 検索ボタンをクリックするとテーブルが表示されるのですが すぐにもとに戻ってしまいます。 すいません。初心者です。 どなたかご教授ください。 言っている意味が分からなかったらすいません。 補足します。 HTMLです。 <td style="width:60px;" align="center"><input style="width:60px" type="submit" id="id" name="id" onclick="effectDetailWindow('detailWindow');" value="検索"></td> <div id="detailWindow" style="display:none;"> <table border="1" cellpadding="3" cellspacing="1" bordercolor="#000000" style="width:460px;"> <tr> <td style="width:80px;" class="table_head"> TEST1 </td> <td style="width:150px;"> <input type="text" size="25" maxlength="50" name="searchtest1" value="{$form.searchtest1}"> </td> <td style="width:80px;" class="table_head"> TEST2 </td> <td style="width:150px;"> <input type="text" size="25" maxlength="50" name="searchtest2" value="{$form.searchtest2}"> </td> </tr> </table> </div> JavaScriptです。 function effectDetailWindow(id) { var obj = document.getElementById(id); if( obj.style.display == "none" ) { obj.style.display = "block"; } else { obj.style.display = "none"; } }
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Hardking
- ベストアンサー率45% (73/160)
effectDetailWindow関数を呼ぶボタンのタイプを submitでなくbuttonに変更してください。 <input style="width:60px" type="submit" ↓ <input style="width:60px" type="button"
- notnot
- ベストアンサー率47% (4900/10359)
Firefoxでやってみましたが、問題なく動作しますよ。(クリックすると表示・非表示が切り替わる) 書いてない部分に問題があるのでは? とりあえず、var obj = document.getElementById(id); の後に、 alert(obj.style.display); とか入れてみては?
最初の、onclick="effectDetailWindowで呼び出している<input>だが、type="submit"になっているのが気になる。これだと、他に何もしてなければ送信してしまわないか。とりあえずこれをtype="button"に変更するとかしたらどうか。