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

このQ&Aに関連する最新のQ&A

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に関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qノートパソコン本体のキーボード入力がおかしい。

日立 FLORA 270W PC8NB2を貰ったのですが、キーボードの配列がおかしかったり、入力できなくなったりします。マウスは普通に動くし、キーボードを外付けでつないでもちゃんと入力できます。ノート本体のキーボードのみおかしいのです。
これは故障なのでしょうか?

Aベストアンサー

こちらをお試し下さい
http://121ware.com/qasearch/1007/app/nec.jsp?003474

Q と <% %>は違うの??

ASP開発をしています。

あるASPでIncludeファイルで配列宣言
Dim gsABC(10)を宣言します。

Includeファイルの中身
<Script Language="VBSCRIPT" RUNAT="SERVER">
Dim gsABC(10)
</script>

そして、ASPファイルでその変数gsABC(0)を
使おうとするとエラーが発生します。

けれども、Includeファイルの中身を
<%
Dim gsABC(10)
%>

にすると正常に動きます。
2つは同じものだと思っていたのですが、
これによって違うものなのかと認識するように
しなければと思ってますが・・・

どこが違うのか分かりません。

どなたか分かりやすく簡単でいいですから
説明して頂けないでしょうか?
よろしくお願いします。

Aベストアンサー

おすすめは後者の 「 <% Dim gsABC(10) %> 」です。
Includeでしたら別に構いませんが、前者だとASPやHTMLに拡張子を決めてしまうとソースが丸見えです。
開発でもやりましたが、VB系のソースは基本的に後者だと思っています。

参考URL:http://tryasp.winscom.co.jp/sample/

Qキーボード入力がおかしい

キーボード入力の際、vを押すとvb nを押すとnm のように
隣のキーが一緒に入力されてしまいます。
他、スペースキーがエンターの役割をしていたりと非常に困っています。

確認したこと・試したこと

キー入力は日本語になっている。
他のキーボードを接続し、試してみても同じ症状。
OSを新規でインストールをしてもなおらない。

他のキーボードで試してみて同じ症状だったので、キーボードの故障は
考えにくいのかなと感じていますが、何か原因になりうる可能性がある
ことはあるのでしょうか?

Aベストアンサー

こんにちは。

・他のキーボードも同じ
・OSを新規でインストールしても治らない

という事であれば、マザーボードが原因ではないでしょうか?
USBキーボードで試して、正常に入力できるようならば、
PS/2ポートの異常かと思います。

それか、OSのCDからブートして回復コンソールでの入力に
異常がなければ、マザーボードではないと思うので、
もしくはキーボードドライバが原因・・・?
他のキーボードドライバを試してみてください。

ここまでやって無理なら、私は修理に出します。
保証期間内であれば、購入店やメーカーで対処してもらった方がいいと思います。

Q"<%=date変数%>" を "<%=date18(←仮数字)%>"とHTML上で表示させたい

いつもお世話になっております。
現在ASPでプログラムを作成していますが。

<%= %> で囲まれた中に更に変数(<%= %>)を入れることになりました。
どの様にすれば
HTMLソースに value="<%=date変数%>"と表示出来ますか
アドバイスお願いいたします。

以下ソースを記載します。

<!-- カレンダー設置関数 -->
<% Function cal(num)
   Dim a
   Dim str
%>
   <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%
   a = 2
   Do Until a > 26
    if a <> num then
%>
     cal<%=a%>.hide();
<%
    Else
    End if
    a = a + 1
   Loop
   Response.Write str
   Response.Write " "" "
%>
   onChange="ca<%=num%>.getFormValue(); cal<%=num%>.hide();" value="<%=date<%=num%>%>"【←問題の箇所です】>
   <br>
   <div id="caldiv<%=num%>"></div>
<%End Function%>

いつもお世話になっております。
現在ASPでプログラムを作成していますが。

<%= %> で囲まれた中に更に変数(<%= %>)を入れることになりました。
どの様にすれば
HTMLソースに value="<%=date変数%>"と表示出来ますか
アドバイスお願いいたします。

以下ソースを記載します。

<!-- カレンダー設置関数 -->
<% Function cal(num)
   Dim a
   Dim str
%>
   <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%
   a = 2
   ...続きを読む

Aベストアンサー

実際に試したわけじゃないですけど、普通に &lt;%=date変数%&gt; で
できませんか。
(実体参照)

Qキーボード入力がおかしい。

WinXPの自作PCを使用していますが、ここ数日、表題のとおりキーボード入力が
おかしくなる事があります。再起動すれば治るのですが、原因を知りたくて投稿しました。

症状:半角アルファベットならば正確に入力できるのだが、ローマ字入力で入力すると、
母音の入力がおかしくなっています。(例)「a」が「b」で、「I」が「C」で入力されます。 したがって、
「ちゃ」と入力する時に、「T」「Y」「A」の順で打ち込むが、画面上では「T」「Y」「B」となって
しまいます。今まで経験した事のない症状なので、教えていただけますでしょうか。

OSはXP(SP3)、ATOK2009を使用しています。キーボードは汎用の物を使っており、
再起動すると治る事からキーボード不良ではないと考えます。仕様で追加情報が必要であれば
補足欄に追加していきます。

Aベストアンサー

補足の返事です

英語のキーボードを削除して再起動後も出てくるなら
手動で設定を変更する必要があるです。

又はレジストリーの書き換え


ま、手動の方が安全なんで一応説明です。。

1 デバイスからキーボードを選んでドライバーの更新
2 検索画面は[今回は接続しません]にチェック入れて次へ
3 一覧または特定の場所からインストールにチェックを入れて次へ
4 検索しないでインストールするドライバーを選択にチェックを入れ次へ
5 互換性のあるハードウェアーの表示(だったけ?)のチェックを外す
6 画面左で標準キーボードを選択
7 画面右側で日本語PS2/キーボード(106/109キーCtr+英数)を選択
8 警告が出るので(ふざけるな!)と言って無視して[はい]を押す(一応治るようにとお祈りしておく)
9 ドライバーのインストールが開始され終了後[完了]をクリックしておしまい
10 再起動の要求が出るのでプログラムを終了して再起動
11 再起動後デバイスマネージャーを確認する(日本語#$%&%$#であればOK)
12以上で復帰できない場合はスクリーンキーボードでは正常か確認し正常ならキーボードの故障もあり得ます
13 USB接続なら違うポートで拾ってみる事も必要です、

14 自作PCだからこんなこと書いても無駄そうですね、この位わかっとるって言われそうです)


長くてすいませんが通常はこれで治ると思う、

補足の返事です

英語のキーボードを削除して再起動後も出てくるなら
手動で設定を変更する必要があるです。

又はレジストリーの書き換え


ま、手動の方が安全なんで一応説明です。。

1 デバイスからキーボードを選んでドライバーの更新
2 検索画面は[今回は接続しません]にチェック入れて次へ
3 一覧または特定の場所からインストールにチェックを入れて次へ
4 検索しないでインストールするドライバーを選択にチェックを入れ次へ
5 互換性のあるハードウェアーの表示(だったけ?)のチェックを外...続きを読む

Q半角カナだけが入力できるは可能?

半角カナだけ入力できるテキストボックスは
作成可能でしょうか?

Vbscript だけを使って実現したいと思います。

Aベストアンサー

ちょっと面倒なやり方ですが、以下の様なものはいかがでしょう?
テキストボックスのonblurイベント時にVBScriptでチェックしています。

----サンプル-----
<html>
<head>
<title>半角カナチェック</title>
<script language="vbscript">
Function KanaCheck(strTarget)
Dim obj, i, strChar, intAscBuff
For Each obj in frm1
If InStr(obj.name, strTarget) > 0 then
For i = 1 To Len(obj.value)
strChar = Mid(obj.value, i, 1)
intAscBuff = Asc(strChar)
If intAscBuff < Asc("ア") Or intAscBuff > Asc("ン") Then
If Not (intAscBuff = Asc("゛") Or _
intAscBuff = Asc("゜") Or _
intAscBuff = Asc(" ") Or _
intAscBuff = Asc("(") Or _
intAscBuff = Asc(")") Or _
intAscBuff = Asc("-") Or _
intAscBuff = Asc(",") Or _
intAscBuff = Asc(".") Or _
intAscBuff = Asc("\") Or _
intAscBuff = Asc("/") Or _
intAscBuff = Asc("「") Or _
intAscBuff = Asc("」")) Then
If intAscBuff < Asc("A") Or _
intAscBuff > Asc("Z") Or _
intAscBuff < Asc("0") Or _
intAscBuff > Asc("9") Then
KanaCheck = False
msgbox obj.name & "は半角カナ文字のみの入力となります。"
Exit Function
End If
End If
End If
Next
End If
Next
KanaCheck = True
End Function
</script>
</head>
<body>
<form name="frm1" method="post">
<input type="text" name="txt1" onblur="KanaCheck('txt1')">
<input type="text" name="txt2" onblur="KanaCheck('txt2')">
<input type="text" name="txt3" onblur="KanaCheck('txt3')">
</form>
</body>
</html>

ちょっと面倒なやり方ですが、以下の様なものはいかがでしょう?
テキストボックスのonblurイベント時にVBScriptでチェックしています。

----サンプル-----
<html>
<head>
<title>半角カナチェック</title>
<script language="vbscript">
Function KanaCheck(strTarget)
Dim obj, i, strChar, intAscBuff
For Each obj in frm1
If InStr(obj.name, strTarget) > 0 then
For i = 1 To Len(obj.value)
strChar = Mid(obj.value, i, 1)
intAscBuff = Asc(strChar)
If intAscBuff < Asc("ア") Or intA...続きを読む

QMacのキーボード入力がおかしいのですが、

マッキントッシュの環境で、
これまでは正常だったキーボードの入力が座席移動のため、コードを抜き差しした後おかしくなってしまいました。全ての入力ではないのですが、

以前(正常時)   現在(おかしい)
・半角/全角幹事キー → ‘ 
・&         → ^
・‘         → &
・(         → *
・)         →(
・*         → ”   

等、他の記号もずれています。
ちなみにOSは 8.6です修正のしかたが
判るかた教えて下さい。

Aベストアンサー

>G3ブルーホワイトで使用してました、
>APPLE USB KEYBOARD - JISを使用していました、
これが問題だったようです、
>APPLE PRO KEYBOARD - JIS(G4 1250mhz用)に変えたらできました。

なるほど。機種がわからなかったので何でしたが最近の機種はそれに付属しているキーボードより古いものはご認識されるんですがそれが原因だったんですね。

試しにうちのマックの1.25G DUALに以前のマックのキーボードを指したらやはりどんなことをしてもご認識しました。

同じ機種同士での移動と勘違いしていたのが早合点でしたね

Aベストアンサー

gotoPageFromAA011
という関数は、JavaScriptの関数です。

書き方や呼び出し方云々の問題ではなく、直接実行はVBScriptで行える場所にはありません。

Call gotoPageFromAA011()
↑よってこの部分は不要です。


要は、ログインボタンエレメントを取得して、クリックさせてあげると、中で勝手にJavaScriptが実行します。


gotoPageFromAA011をコメントアウトし、以下のコードを追加してください。

'Call gotoPageFromAA011() ← コメントアウト

'↓以下追加
Call SubmitFunctionCall(objIE.Document)

Sub SubmitFunctionCall(p_doc)
Dim l_divLogin
Set l_divLogin = p_doc.getElementById("loginForms")

Dim l_divSec
Set l_divSec = l_divLogin.ChildNodes(0)

Dim l_htmTbl
Set l_htmTbl = l_divSec.ChildNodes(0)

Dim l_htmTblRow
Set l_htmTblRow = l_htmTbl.Rows(0)

Dim l_htmTblCell
Set l_htmTblCell = l_htmTblRow.Cells(1)

Dim l_htmBtn
Set l_htmBtn = l_htmTblCell.ChildNodes(0)
Call l_htmBtn.Click()
End Sub


ってかこの手の質問は、「ASPカテゴリ」ではなく、「JavaScriptカテゴリ」か「VBカテゴリ」に質問した方が素早い回答を得られますよ。

gotoPageFromAA011
という関数は、JavaScriptの関数です。

書き方や呼び出し方云々の問題ではなく、直接実行はVBScriptで行える場所にはありません。

Call gotoPageFromAA011()
↑よってこの部分は不要です。


要は、ログインボタンエレメントを取得して、クリックさせてあげると、中で勝手にJavaScriptが実行します。


gotoPageFromAA011をコメントアウトし、以下のコードを追加してください。

'Call gotoPageFromAA011() ← コメントアウト

'↓以下追加
Call SubmitFunctionCall(objIE.Document)

Sub Subm...
続きを読む

QIEとOEの時のキーボード入力がおかしい

こんにちは、キーボード入力がおかしいので質問させてください。Internet ExpolorerとOutlook Expressの時だけキーボードの入力が変なのです。@をおすと [ と表示されます。英語の101キーボードになっているようです。しかし、他のソフトではWordやメモ帳等は正常に入力できるのです。デバイスマネジャーも日本語106/109になっています。
過去ログを見ましたが、IEだけとというのは見つけられませんでした。どなたか お助けください。

Aベストアンサー

これでもいいかも、
スタート→「ファイル名を指定して実行」をクリック
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411" /v "Layout File" /d "KBDJPN.DLL" /t REG_SZ /f
(一行です。コピペしてね)
と入力して「OK」をクリック

その後、Windowsを再起動させます。

QSUBMITボタンで値を渡す時、次のページのパラメータをAAA="BBB=1&CCC=1"みたいにするには?

普通、次のページに渡すパラメータは

test.asp?AAA=1

みたいな形だと思うのですが、

test.asp?AAA=BBB=1&CCC=1 みたいなことをしたいのです。

BBB=1&CCC=1 を AAA に格納したいのですが、

どうやればいいのでしょう?

Server.urlencode とかいうのがよく分かりません
どなたか意味と役割と使い方を教えて下さい。

Aベストアンサー

Response.Redirect "test.asp?AAA=" & _
Server.URLEncode("BBB=1&CCC=1")

test.asp 側では Request.QueryString("AAA") を参照すれば
BBB=1&CCC=1 が入っています


人気Q&Aランキング