• 締切済み

VBScriptの書き方

メンテナンス画面から登録ボタンを実行して、 入力内容にエラーがあったら、 エラーメッセージを表示して、 登録画面をもう一度表示する。 といった処理にしたいのですが、 エラーメッセージをVBScriptで表示すると、 メッセージが、どうしても2回表示されてしまいます。 例) <% If xx then %> <script language=VBScript> <!-- MsgBox("aaa") //--> </script> <% End If %> : : : <html> : : </html> <html>タグの前に<script>タグを書くとsubmitされるのでしょうか? 結局、html中のjavaScriptに書き込んで、<body>のonloadでメッセージを 表示する処理に直したのですが、腑に落ちないので… ご存知の方、教えてください。 ちなみに環境はNT4.0、IE5.5です。

みんなの回答

  • itohh
  • ベストアンサー率45% (210/459)
回答No.3

こんにちは。itohhといいます。 あまりにもソースを省略しすぎて解らないのですが。 まず、 <%...%>は、サーバ側(IIS/ASP)で動きます。 そして、 ><script language=VBScript> ><!-- >MsgBox("aaa") >//--> は、ブラウザ側で動作するコードです。 ですので、 ><% If xx then %> ><script language=VBScript> ><!-- >MsgBox("aaa") >//--> ></script> ><% End If %> ここのところは、サーバ側でxxが真になる場合だけ、IfとEnd Ifの間のコードを ブラウザ側に送ります。 その後、ブラウザ側でMsgBox("aaa")が実行されます。 載っているソースではここまでしか解りません。 あと、ブラウザ側で動作するスクリプトがこのままだと、VBScriptですよね。 一般的にブラウザ側で動作するスクリプトはJavaScriptのほうが良いですよ。 VBScriptが動作するのは、WindowsのIEだけですよ。ネスケなどでは動作しません。

  • marmi1516
  • ベストアンサー率17% (3/17)
回答No.2

(使用するソフトによって違ったりすることもあるのかもしれないので、 はっきりとは言いきれないのですが・・・) ASPだからVBScriptなのかどうかはわかりませんが、 わたしの使用しているソフトでは、<%~%>で囲った部分はVBScriptです。 hyahooさんも、<%If~%>の部分はVBScriptだとおっしゃっていましたが、 それならば、<script language=VBScript> で宣言をする必要はないのではないでしょうか? 入力チェックはjavascriptでは駄目なのですか?? わたしは、<HEAD>~</HEAD>の部分にいれてありますが・・・ もう少し詳しく説明していただけると、嬉しいです。

  • marmi1516
  • ベストアンサー率17% (3/17)
回答No.1

私もあまり詳しい訳ではないのですが・・・ ソフトは何を使用されていますか?? <%~%>で囲った部分は、VBScriptではないのですか?? わたしもMicrosoft Visual InterDevでASPをやっているので、 少しはお役に立てるかもしれません。

hyahoo
質問者

補足

私も今回ASPは初めてでよくわかってないのですが、 <%~%>はJSPの処理タグと同じだと思ってます。 JSPだと<%~%>の中はjavaだから、ASPだとVBScriptってことでしょうか? 一通り、流れを追ってみて、<%IF ~%>のところは、1回しか通ってないと思ったんですが、分かりにくいですね。 すいません、ますますややこしくなってしまった。

関連するQ&A

  • 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>

  • 【VBScriptについて】VBScriptでアスタリスクは使えるのでしょうか

    質問させてください。 VBScriptを使用してフォルダ(file2)があるかどうか確認したいと思っております。 しかし上位のフォルダが何か分からず、又、上位フォルダが何階層になっているかも 分かりません。 その場合、アスタリスクを使用したりなど 何か方法はあるのでしょうか(それともVBScriptで実装することは無理なのでしょうか) 以上について知っていらっしゃる方いらっしゃいましたら 教えていただけないでしょうか。 大変お手数をお掛けいたしますが宜しくお願い致します。 【作成したスクリプト】(Xの部分が分かりません) ---------------------------------------------------------------------------- : 'フォルダがあるかどうか確認 If (fso.FolderExists("x:\xxx\file2")) Then MsgBox "フォルダがあります" Else MsgBox "フォルダがありません" End If ------------------------------------------------------------------------

  • VBScriptで困ってます(>_<)

    VBScriptを使って、クイズ的なものを作成しているのですが、 打ち込んだクイズをランダムに表示させられないかと考えました ですが、どのような文字列を打ち込んだら良いか分かりません… 一応、こんな感じで作成しています。 moji = inputbox("クイズの内容","タイトル") if (moji = "ここには正解を") then msgbox("当たっていた場合の表示") else msgbox(moji = "外れていた場合の表示") end if 以下二問目~ という風に作成しています どこにどのようにどのような文字列を打ち込めばよいか(ToT)/~~~ どなたか知恵をお貸しください…

  • asp(vbscript)のエラー

    プログラム初心者です。 教えてください。 以下の処理が書かれている 画面のHTML上で実行開始のボタンを押すと、 書かれたSubプロシージャが走り、CSVファイル読み込みが始まります。 正解、不正解の判定をするダイアログ表示されて、できている様なのですが、 そのダイアログをOKで閉じると 以下のスクリプトエラーが表示されます。 どのような原因のエラーなのか教えていただけないでしょうか? デバッグすると If arrFields(1) = "あ" Thenの行でエラーが起きているようです。 すみません。よろしくお願いします。 Sub syori (省略) Set objFile = objFSO.OpenTextFile(file_path, ForReading) Do While objFile.AtEndOfStream <> True strData(i) = objFile.ReadLine Data = strData(i) i = i + 1 arrFields = Split(Data,",") 'MsgBox arrFields(1) If arrFields(1) = "あ" Then MsgBox "正解" else MsgBox "不正解" end if (省略) Sub End

  • VBscriptを実行するとコマンドコンソールウインドーが表示されてしまう

    VBscript初心者です。 VBscripでinputbox入力したものをmsgboxで表示するプログラムを 自作して、仕事で使用していました。 option explicit dim strmessage,y strmessage=("メッセージを入力してください。","メッセージ入力") if isempty(strmessage) then wscipt.quit y=msgbox("""" & strmessage & vbcrlf & "このメッセージを警告にしますか?",vbquestion + vbyesno,"メッセージ確認") if y=vbyes then msgbox strmessage,vbexclamation,"メッセージ" else msgbox strmessage,vbinformation,"メッセージ" end if 今日から、これを実行したときにコマンドコンソールのウインドーが 表示されるようになってしまいました。 このウインドウーを表示させなくするにはどうしたらよいでしょうか? また、Wscript.echoを使用したときにウインドーが表示されません。 初心者の私にもわかりやす回答をよろしくおねがいいたします。

  • VBscriptでXMLのファイルから、XPathで指定したデータを読

    VBscriptでXMLのファイルから、XPathで指定したデータを読み込みたいと思っていますが、 XMLファイル中に指定したXPathのタグがない場合、"オブジェクトがありません。" というエラーになってしまいます。 このような場合、どのような処理にすれば良いのでしょうか?親タグ、子タグなどを総当りで、存在するか調べないといけないのでしょうか?以下のようなスクリプトです。 Set xmlDoc = WScript.CreateObject("MSXML2.DOMDocument") With xmlDoc .Async = False .Load("aaaa.xml") xpath01 = "/tag1/tag2/tag3" Set xmlNode = .selectSingleNode(xpath01) MsgBox xmlNode.text End With

  • VBScriptで子画面へ配列のデータを渡したい!

    子画面(showModalDialogでオープン)で親画面から渡された引数を利用したいです。 親は配列を渡して、子はその配列の中身を参照したいです。 下記の例でやると、「エラー:型が一致しません。:'window.dialogArguments'」と、(1)の所で言われてしまいます。 色々探したのですが、JavaScriptの例や配列ではない場合の例ばかりでJVScriptの場合のやりかたがわかりません。 どなたか教えてください。 親画面 <script language="vbScript"> <!-- dim arg(20) arg(1) = "Value1" ~ arg(1) = "Value20" window.showModalDialog "ko.html",arg --> </script> 子画面 <script language="vbScript"> <!-- dim arg(20) arg = window.dialogArguments ・・・(1) Msgbox arg(1) --> </script>

  • VBscriptについて。シェルが機能しない。。

    VBscriptについて。シェルが機能しない。。 Windows XPです。 メモ帳でTEST.wshというファイルを作成しました。 そこに Msgbox("TEST HEllow")とかいて保存しました。 Windows Script Host スプリクトファイルが指定されていません。 とエラーが出ます。どうすれシェルが機能しますか?

  • ASP VBscript でメッセージボックスの文字の大きさを変えるには?

    例えば vbscript で あるボタンのクリック時に Msgbox "あいうえお" として、表示されるメッセージボックスの中の あいうえお という文字のフォントサイズを変えることは可能でしょうか? 画面領域 1280 × 1024 とかでディスプレイを表示させている時、 メッセージボックスの文字サイズが小さくて困っています。 どなたか手がかりだけでも至急お願いします!

  • HTML + VBScript で Sleep できない

    お世話になります。ご教授ください。 類似の質問が既にあるのかもしれませんが、質問させていただきます。。。 HTML上に記述するVBScriptでは、WScriptは使用できないという記事を見かけます。 実際、HTML+VBScriptで使用すると、 変数は宣言されていません:'WScript' とエラーが出ました。 WSH は WScript のインスタンスを読み込むことができないうんぬん、と書かれていました。 書きたいことは、 WScript.Sleep 1000 です。 もしくは、これに変わる何かがしたいです。 外部ファイル化(.vbs)を試してみましたが、ダメでした。 ==== サンプル(Sample.vbs) ==== Option Explicit MsgBox "start" Dim Idx = 0 Do While Idx <> 3 WScript.Sleep 1000 MsgBox Idx Idx = Idx + 1 Loop WScript.Sleep 1000 MsgBox "end" ================ <html> <head> <meta http-equiv="Content-Script-Type" content="text/vbscript"> <script language="VBScript" type="text/vbscript" src="sample.vbs"></script> </head> … という感じです。 上記はあくまでサンプルですが、最終的には「ループの中で」待ち状態、になるようにしたいです。 Do While ある条件 1秒待ち ある条件に、なるかならないか Loop (setTimeout を使用する例が書かれていましたが、それではループ制御は走り続け、CPUが痛い目に合いました。。。) もしかして、WScript は使用できるのに、記述ミスかもしれませんし。。。 できない場合は、それに変わる案などいただけるとありがたいです。 よろしくお願いします。