• ベストアンサー

VBScriptで未入力のチェック(クライアントサイド)

ある程度の入力チェックをIEにて行わせたいのですが 入力チェックをして「OK」ボタンをクリックしても 次ページへ移動してしまいます。 メッセージを表示させて未入力の欄にフォーカスを動す方法を 教えてください。(何か入力されていたら次のページへ移動) よろしくお願いします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE=vbscript> <!-- Sub window_onload FAQForm.text1.focus End Sub Sub submit1_onclick if FAQForm.text1.value="" then msgbox "未入力です。" exit sub end if End Sub --> </SCRIPT> </HEAD> <BODY> <FORM NAME="FAQForm" METHOD="post" ACTION="FAQ.asp"> <P><INPUT name=text1></P> <P><INPUT type=submit value=Submit name=submit1></P> </FORM> </BODY> </HTML>

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

  • ベストアンサー
  • earh8
  • ベストアンサー率30% (3/10)
回答No.2

><P><INPUT type=submit value=Submit name=submit1></P> の 「type=submit」を「type=button」にして、 「type=submit」にするとmandaraさんもいわれている通り、 formのActionが有効になってしまいます。 >Sub submit1_onclick >if FAQForm.text1.value="" then >msgbox "未入力です。" >exit sub を Sub submit1_onclick if FAQForm.text1.value="" then msgbox "未入力です。" else document.FAQForm.submit() exit sub でどうでしょうか? 蛇足: ちょっと確認していないのですが、mandaraさんの場合だと、 msgbox "未入力です。" のあとの処理として画面がリロードされてしまいません? formのActionを指定しない場合のActionって自分自身が呼ばれると 記憶しているのですが...(今は違うかな?)

sienna
質問者

お礼

今回はearh8さんの方法で実行した結果 無事処理する事ができました。 ありがとうございました。

その他の回答 (1)

  • mandara
  • ベストアンサー率25% (1/4)
回答No.1

このままでは、  1.<FORM>のAction処理  2.VBScriptでの処理 が同時に処理されることになるので、 まず、この場合は<FORM>の中に「Action」を書かない。 ------------------------------------ <FORM NAME="FAQForm" METHOD="post"> ------------------------------------ 次に、「VBscriptのsubmitボタンを押したときの処理の部分」を以下のように修正してみてください。 -------------------------------- Sub submit1_onclick if FAQForm.text1.value="" then msgbox "未入力です。" else Document.FAQForm.ACTION="FAQ.asp" Document.FAQForm.Submit() end if End Sub -------------------------------- 以上の2つの部分を修正して試してみてください。

sienna
質問者

お礼

「Action」を書かない方法もあるのですね。 勉強になりました。ありがとうございました。

関連するQ&A