• ベストアンサー

ループを抜け出したい

過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 名前のテキストに記入して送信ボタンを押した時にアラートが出て抜け出せません。 名前をテキストに書いて送信を押した時にテキストを送りたいのですが、どうしたらよいでしょうか。 function chkHissu(frm){ var abe = frm.elements.name.value; if(abe.value=="");{ alert("名前は必須入力項目です"); frm.elements.name.focus(); return false; } } ご存知の方がいらっしゃいましたらご教授お願いします。

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

  • ベストアンサー
  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.5

指摘されている内容が反映されていないようですが・・・ var abe = frm.elements.name.value; if(abe.value=="");{ ↓ var abe = frm.elements.name.value; if(abe==""){ または、 var abe = frm.elements.name; if(abe.value==""){ または、 if(frm.elements.name.value==""){ あるいは、 if(!frm.elements.name.value){ と直せばOK JavaScriptは探すとサンプルが沢山見つかるのでそれを参考にすると早いと思います。 http://allabout.co.jp/internet/javascript/subject/msubsub_001022020.htm

suzuka7904
質問者

お礼

ありがとう御座いました。 おかげで無事解決できました。 4時間考えて解決できなかった自分が恥ずかしいです。 本当にありがとう御座いました。 URLはこれからも参考にさせていただきます。

その他の回答 (4)

回答No.4

本当にこのまま使われてます? > if(abe.value=="");{ > alert("名前は必須入力項目です"); > (略) > } if()のうしろに ; がある様に見えますが、こう書くと if(abe.value==""){ ; //if文が真の時は何もしない } { //オブジェクト初期化子。 alert("名前は必須入力項目です"); } という意味になります。 ANo.3のvalueのを修正、 ; を消して、最後にreturn true;を追加しています。 動作未確認 function chkHissu(frm){ var abe = frm.elements.name; if(abe.value==""){ alert("名前は必須入力項目です"); abe.focus(); return false; } return true; }

suzuka7904
質問者

お礼

ありがとうございました。おかげで無事解決いたしました。

suzuka7904
質問者

補足

修正してみましたがやはりまだループしてしまうようです。 とりあえずhtmlで書いた文章をそのままのせてみます。 <html> <head> <title>入力フォーム</title> <link rel="stylesheet" href="../stylesheetcss/style.css"> <SCRIPT language="JavaScript"> <!-- function chkHissu(frm){ var abe = frm.elements.name; if(abe=="");{ alert("名前は必須入力項目です"); frm.elements.name.focus(); return false; } return true; } //--> </SCRIPT> </head> <body bgcolor="#ffffff"> <center> <form name="form1" method='post' action="http://game.gr.jp/buffer.cgi" onSubmit='return chkHissu(this)'> <table border="0" class=fox bgcolor="#000000"> <tr height="30"> <td width="400" colspan="2" bgcolor="#6090ef"><font color="#ffffff"> ||新規ユーザー登録</font></td> <td width="150" bgcolor="#ffffff"><b class="tob">&nbsp;<img src="../kadai2/images/hin.gif">ヘルプ</b></td> </tr> <tr height="70" bgcolor="#ffffff"> <td width="120" class=spy class=spy><font color="red">* </font>名前</td> <td width="280"> <table border="0"><tr><td width="180"> <input type='text' name='name'> </td></tr></table> </td> <td width="150">&nbsp;</td> </tr> <tr height="70" bgcolor="#ffffff"> <td width="120" class=spy>送信・クリア</td> <td width="280" colspan="2"> <input type='submit' value='送信'>  <input type='reset' value='クリア'> </td> </tr> </form> </table> </center> <br> </body> </html> 長くなってしまって申し訳ございません。 ご面倒では御座いますが、アドバイスをお願いします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

うーん var abe = frm.elements.name.value; とあるのに if(abe.value==""){・・・ とあるのはいかがなものかと。 if(abe==""){・・・ とかでは? abe.valueはおそらくundefinedだと思います

suzuka7904
質問者

お礼

pipipi523さんと同じアドバイスだったのに私の理解不足ですぐに生かせずにすみませんでした。 ありがとう御座いました。

  • X-trail_00
  • ベストアンサー率30% (438/1430)
回答No.2

これ自体は問題じゃないと思います。 これをどのイベントで呼び出しているのかが問題だと思われます。 onfocusとかに書いてませんか? onblurとかonchangeに書かないといけません

suzuka7904
質問者

補足

onSubmitで呼び出しているのですが、これではだめですかね。 送信ボタンを押した時にアラートが出て、名前がテキストに書かれていたらスルーするようにしたかったのですが、この場合はどうしたらよいでしょうか?

noname#39970
noname#39970
回答No.1

frm.elements.name.value name は 部品の名前 <input name="TEST"> なら frm.elements.TEST.value

関連するQ&A