- - PR -
エラーメッセージを初期化した時に、テキストフィールドを認識しないようにするには?
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-11-30 23:25
送信ボタン押下時に、
ラジオボタンをチェックしてあるか判定して、 チェックしていれば、送信ボタンの下にエラーメッセージを表示するようにしています。 radio1とradio2両方選択せずに、送信ボタンを押下して、 errorMessage1とerrorMessage2を表示させた後、 radio1を選択して、送信ボタンを押下すると、 errorMessage1は表示されませんが、 errorMessage1のdivタグ分だけ空白が空いて、その空白の下にerrorMessage2が表示されます。 errorMessage1のdivタグ分の空白を作らずに、 送信ボタンのすぐ下にerrorMessage2を表示するにはどうしたらよいのでしょうか? ソースは下記のように書いています。 <script type="text/javascript"> function checkRadio(){ //エラーメッセージのテキストフィールドを初期化 var errorMessage1 = window.document.getElementById("radio1"); errorMessage1 .innerText = ""; var errorMessage2 = window.document.getElementById("radio2"); errorMessage2 .innerText = ""; var obj = document.getElementsByName("radio"); for(var i=0;i<obj.length;i++){ var objRadio = obj[i]; if(objRadio.checked==true){ return true }else{ errorMessage1.innerText = "radio1を選択してください" errorMessage2.innerText = "radio2を選択してください" return false; } </script> <form> <table> <tr> <input type=radio id="radio1" name="radio">radio1<br> </tr> <tr> <input type=radio id="radio2" name="radio">radio2<br> </tr> <tr> <input type=submit value="送信" onclick="return checkRadio();"> <div id="errorMessage1"></div> <div id="errorMessage2"></div> </tr> </form> | ||||
|
投稿日時: 2007-12-02 19:54
JavaScriptネタは リッチクライアント & 帳票 の方がよいと思いますよ。
| ||||
|
投稿日時: 2007-12-02 23:29
内容とコードが微妙に合っていないように思えますが内容通り出来ていると思って回答します。
errorMessage1のdivタグをタグごと非表示化させることでできると思います。 errorMessage1のdivタグを非表示にする errorMessage1.style.display = "none"; 戻す(表示させる)ときは、 errorMessage1.style.display = ""; でいいと思います。 最初からメッセージを非表示で持たせておいてタグの表示非表示でコントロールすると楽かもしれません。 <div id="errorMessage1" style="display:none;">radio1を選択してください</div> <div id="errorMessage2" style="display:none;">radio2を選択してください</div> | ||||
|
投稿日時: 2007-12-03 09:30
思い通りに空白行を消す事ができました。
月曜日の朝ですが、悩みをひとつ減らす事ができました。 ありがとうございました! ちなみに、 errorMessage1.style.display = "none"; として、divを非表示にする際に、 var errorMessage1 = window.document.getElementById("radio1"); とIdをgetしなくてもうまくいったのですが、これで良いのでしょうか? [ メッセージ編集済み 編集者: ごろう 編集日時 2007-12-03 09:48 ] | ||||
|
投稿日時: 2007-12-03 09:56
>ごろうさん、tkrnさん
ちょっとまて! JavaとJavascriptの違いは判るよね? # javacしてもエラーが出る、って見てみたらjavascriptで書いてあった。ってー脱力したくねーだろ? | ||||
|
投稿日時: 2007-12-03 10:08
しなくていいです。 むしろコード上混乱してしまうのでしてダメです。 errorMessage1は <div id="errorMessage1"></div> のdivタグを示していますが、 var errorMessage1 = window.document.getElementById("radio1"); のerrorMessage1は、 <input type=radio id="radio1" name="radio"> のinputタグを示しています。 今回コントロールしたいタグは前者のdivタグになりますので、 var errorMessage1 = window.document.getElementById("radio1"); は不要(間違い)という事になります。 | ||||
|
投稿日時: 2007-12-03 10:18
たしかに。 小僧さんの指摘後直ぐの回答だった為「リッチクライアント & 帳票」に移動されていなかったのでそのまま書いてしまいました。 JavaScriptの質問は「リッチクライアント & 帳票」でしましょう(遅) | ||||
|
投稿日時: 2007-12-05 11:37
了解しました。 以後、気をつけます。 |
1