- ベストアンサー
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>
- みんなの回答 (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って自分自身が呼ばれると 記憶しているのですが...(今は違うかな?)
その他の回答 (1)
- mandara
- ベストアンサー率25% (1/4)
このままでは、 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つの部分を修正して試してみてください。
お礼
「Action」を書かない方法もあるのですね。 勉強になりました。ありがとうございました。
お礼
今回はearh8さんの方法で実行した結果 無事処理する事ができました。 ありがとうございました。