プロが教える店舗&オフィスのセキュリティ対策術

ある程度の入力チェックを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>

A 回答 (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って自分自身が呼ばれると
記憶しているのですが...(今は違うかな?)
    • good
    • 0
この回答へのお礼

今回はearh8さんの方法で実行した結果
無事処理する事ができました。

ありがとうございました。

お礼日時:2001/11/30 08:55

このままでは、



 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つの部分を修正して試してみてください。
    • good
    • 0
この回答へのお礼

「Action」を書かない方法もあるのですね。

勉強になりました。ありがとうございました。

お礼日時:2001/11/30 08:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!