WSHフォームのデータがないまま実行するとERRORメッセージが表示されない問題について

このQ&Aのポイント
  • WSHフォームにデータがないまま実行すると、ERRORメッセージが表示されずに書き込み処理が行われてしまいます。
  • 条件分岐(if文)を使用して、フォームに値が入っていない場合にはERRORメッセージを出し、書き込み処理を行わないようにしたい。
  • しかし、現在の処理では入力がされていなくても書き込み処理が実行されてしまい、保存しましたと表示されます。
回答を見る
  • ベストアンサー

WSH

フォームにデータがないまま実行するとEROORメッセージを出し、書き込み処理を行わないようにしたいのですが、 if (ひとつでもフォームに値が入っていないとき) msgbox("eroor") else (全部入っているとき) (書き込み) end if としているはずなのですが、なぜか動きません。 (入力しなくても書き込み処理をしてしまい、保存しましたと表示されてしまいます。) <script language=vbscript> <!-- Sub ok_OnClick n=1 Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.OpenTextFile("C:\borland\bcc55\t\1203\a.txt",8, True) if File1Name1="" Or File1Name2="" Or File1Name3="" Or File1Name4="" Or File1Name5="" Or n="" Then msgbox("eroor") else for I=1 to n str1=document.all("File" & CStr(I) & "Name1").value str2=document.all("File" & CStr(I) & "Name2").value str3=document.all("File" & CStr(I) & "Name3").value str4=document.all("File" & CStr(I) & "Name4").value str5=document.all("File" & CStr(I) & "Name5").value str=str1 & "," & str2 & "," & str3 & "," & str4 & "," & str5 tmpFile.WriteLine str next Document.Write "<center><br><br><br><br>" Document.Write "保存しました。" end if End Sub --> </script> <html><body><center> <table><tr><td><input SIZE=12 type=text id=File1Name1></td><td><input SIZE=12 type=text id=File1Name2></td><td><input SIZE=12 type=text id=File1Name3></td><td><input SIZE=12 type=text id=File1Name4></td><td><input SIZE=12 type=text id=File1Name5></td></tr></table><br><br><input type=button name=ok value=登録></center></body></html>

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

if File1Name1.value="" Or File1Name2.value="" Or File1Name3.value="" Or File1Name4.value="" Or File1Name5.value="" Or n="" Then の様にして下さい。

cluewm
質問者

お礼

.value が抜けていたのですね。 ありがとうございました。

関連するQ&A

  • WSH

    こんにちは。 下記のようなものを作りたいのですが、動きません。 どう記述するものなのでしょうか? おかしい部分はループ内の"I"です。 HTMLでフォームをおき、一列(4つ)一組として、三列用意しました。たとえば、 あ い う え か き く け さ し す せ と各テキストボックスに入力し、実行ボタンを押したとき、テキストファイルには、 あ,い,う,え か,き,く,け さ,し,す,せ と書き込まれるようにしたいのです。 下記、ソースです。 よろしくお願いいたします。 <script language=vbscript> <!-- Sub ok_OnClick dim o,p,q,r,str,I,n n=3 Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.CreateTextFile("a.txt") for I =1 to n o=File[I]Name1.value p=File[I]Name2.value q=File[I]Name3.value r=File[I]Name4.value str=o+","+p+","+q+","+r tmpFile.WriteLine(str) loop tmpFile.close Set tmpFile = Nothing Set fso = Nothing End Sub --> </script> <html><body><center> <input type=text name=File1Name1 value=""> <input type=text name=File1Name2 value=""> <input type=text name=File1Name3 value=""> <input type=text name=File1Name4 value=""><br> <input type=text name=File2Name1 value=""> <input type=text name=File2Name2 value=""> <input type=text name=File2Name3 value=""> <input type=text name=File2Name4 value=""><br> <input type=text name=File3Name1 value=""> <input type=text name=File3Name2 value=""> <input type=text name=File3Name3 value=""> <input type=text name=File3Name4 value=""><br><br><br> <input type=button name=ok value=登録></center> </body> </html>

  • javascriptでフォームの値の計算

    javascript1か月目の初心者です。 7つのテキストフィールドに数値を代入させて合計と平均(最後には標準偏差)を計算しようと思ってます。 以下のように考えましたが、うまくいきません。 strが文字列として?扱われてしまっているようです。 strをevalで囲んでみてもダメです。 詳しい方教えてください。 <!--スクリプト1--> <SCRIPT LANGUAGE="JavaScript"> <!-- function f_check() { if(document.F1.num1.value!=""&&document.F1.num2.value!=""&&document.F1.num3.value!=""&&document.F1.num4.value!=""&&document.F1.num5.value!="" &&document.F1.num6.value!=""&&document.F1.num7.value!=""){ str=0 for(var i = 0;i<document.F1.length;i++){ str+=document.F1[i].value; } alert('合計は'+str+"です"); avrg = (str)/document.F1.length; alert('平均は'+avrg+'です'); //ここから標準偏差の計算(略)。 } // --> </SCRIPT> <form method="post" name="F1" onSubmit="return f_check()"> 数値を入れてください<input type="text" name="num1" size="5"><br> 数値を入れてください<input type="text" name="num2" size="5"><br> 数値を入れてください<input type="text" name="num3" size="5"><br> 数値を入れてください<input type="text" name="num4" size="5"><br> 数値を入れてください<input type="text" name="num5" size="5"><br> 数値を入れてください<input type="text" name="num6" size="5"><br> 数値を入れてください<input type="text" name="num7" size="5"><br> <INPUT TYPE=SUBMIT VALUE="平均をとる"></FORM>

  • javascriptによる計算

    テキストボックス「a1~6」の値とテキストボックス「b1~6」に入力された値を足し算してテキストボックス「c1~6」(例…c[i] = a[i] + b[i])を計算するJavaScriptを作成しているのですが、結果がundefinedになってしまい上手くいきません。どうやったら動くのかどうかご教授ください。 以下ソース↓ <script language ="JavaScript"> function plus() { var intResult = 0; for (i=1; i<=6; i++){ intResult[i] = 0; if (!isNaN(document.forms["A"].all["a"+i].value) && !isNaN(document.forms["B"].all["b"+i].value)){ intResult[i] += parseInt(document.forms["A"].all["a"+i].value); intResult[i] += parseInt(document.forms["B"].all["b"+i].value); } <table border = 1> <tr> <td> <table border = 1> <tr> <td> <form name="A"> <input type = "text" size = 5 name = "a1"></input> </td> <td> <input type = "text" size = 5 name = "a2"></input> </td> <td> <input type = "text" size = 5 name = "a3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "a4"></input> </td> <td> <input type = "text" size = 5 name = "a5"></input> </td> <td> <input type = "text" size = 5 name = "a6"></input> </form> </td> </tr> </table> </td> <td> <table boeder = 1> <tr> <input type = "button" onClick="plus()" value = "+"></input> </tr> </table> </td> <td> <table border = 1> <tr> <td> <form name = "B"> <input type = "text" size = 5 name = "b1"></input> </td> <td> <input type = "text" size = 5 name = "b2"></input> </td> <td> <input type = "text" size = 5 name = "b3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "b4"></input> </td> <td> <input type = "text" size = 5 name = "b5"></input> </td> <td> <input type = "text" size = 5 name = "b6"></input> </form> </td> </tr> </table> </td> </tr> </table> 答え <form name = "C"> <table border = 1> <tr> <td> <input type = "text" size = 5 name = "c1"></input> </td> <td> <input type = "text" size = 5 name = "c2"></input> </td> <td> <input type = "text" size = 5 name = "c3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "c4"></input> </td> <td> <input type = "text" size = 5 name = "c5"></input> </td> <td> <input type = "text" size = 5 name = "c6"></input> </td> </tr> </table> </form> </body> document.C.all["c"+i].value = intResult[i]; } } </script>

  • VBAでアップロード

    ホームページ作成をしているのですが、ローカルにあるhtmlファイルをvbaでアップロードしたいのですが やり方がよくわかりません。 ソースは *************************************************************** <TABLE border=0 cellSpacing=0 cellPadding=0 width=650> <TBODY> <TR vAlign=top> <TD width="50%"> <TABLE style="FONT-SIZE: 12px" border=0 cellSpacing=1 cellPadding=3 width=323 bgColor=#ff6600> <FORM encType=multipart/form-data method=post action=/tok2_ftp/index.php> <INPUT name=act value=upload type=hidden> <INPUT name=MAX_FILE_SIZE value=300000 type=hidden> <INPUT name=dirname value=/ type=hidden> <TBODY> <TR align=center> <TD bgColor=#ffcc66>ファイルアップロード</TD></TR> <TR align=center> <TD class=line-height1 bgColor=#ffffff> <BR>アップロード可能なサイズは、1ファイル300kbまでです。<BR> <FONT color=#ff0000>※既に同じファイル名が存在する場合は上書きされます。</FONT> <BR><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file> <BR><BR><INPUT style="WIDTH: 150px" value=アップロード type=submit> <BR><BR></TD></TR></FORM></TBODY></TABLE></TD> *************************************************************** このような感じなのですが、 VBAで objIE.document.all("upfile[]")(0).Value = "test" 'エラーにならないけど値も入らない objIE.document.forms(0).all("upfile[]")(0).Value = "test" 'エラーにならないけど値も入らない 'objIE.document.forms(0)("upfile[]").Value = "test" 'エラー 'objIE.document.all("upfile[]").Value = "test" 'エラー objIE.document.forms(0).submit '押せる こんな事をやってみましたが、値を入れる事ができません。 解決方法を教えてください。

  • javascript 関数についての質問

    javascriptで 入力された日付を元に30日後、40日後、60日後、90日後の日付を表示したいのですが、 作った関数が1回しか使えませんTT(?)何回も使えるようにしたいです! 初歩的な質問ですみませんが、どうすればよいでしょうか? <html> <head> <title>ねこ</title> <script> function Kekka(days){ Yobi = new Array("日","月","火","水","木","金","土"); Date = new Date(document.form.y.value, document.form.m.value -1, document.form.d.value); d = Date.getDate(); Date.setDate(d+days); y = Date.getFullYear(); m = Date.getMonth()+1; d = Date.getDate(); w = Date.getDay(); str1 = y+"年"+m+"月"+d+"日("+Yobi[w]+"曜日)"; //土曜日か日曜日だったら次の月曜の日付もとる if(w == 0){ w = 1; Date.setDate(d+days+1); d = Date.getDate(); } else if(w == 6){ w = 1; Date.setDate(d+days+2); d = Date.getDate(); } str2 = y+"年"+m+"月"+d+"日("+Yobi[w]+"曜日)"; return str1,str2; } function CLR(){ document.form.y.value="";document.form.m.value="";document.form.d.value=""; document.form.v1.value="";document.form.v1_2.value=""; document.form.v2.value="";document.form.v2_2.value=""; document.form.v3.value="";document.form.v3_2.value=""; document.form.v4.value="";document.form.v4_2.value=""; document.form.v5.value="";document.form.v5_2.value=""; } function Test(){ Kekka(30); document.form.v1.value = str1; document.form.v1_2.value = str2; Kekka(40); document.form.v2.value = str1; document.form.v2_2.value = str2; } </script> </head> <body> てすとなう<br><br> <form name="form"> <input type="text" name="y" size="4">年 <input type="text" name="m" size="2">月 <input type="text" name="d" size="2">日 <input type="button" value="start" onclick="Test()"> <input type="button" value="CLR" onclick="CLR()"> <br><br> 30日後:<input type="text" name="v1" size="27">→<input type="text" name="v1_2" size="27"><br> 40日後:<input type="text" name="v2" size="27">→<input type="text" name="v2_2" size="27"><br> 60日後:<input type="text" name="v3" size="27">→<input type="text" name="v3_2" size="27"><br> 90日後:<input type="text" name="v4" size="27">→<input type="text" name="v4_2" size="27"><br> 3ヶ月後:<input type="text" name="v5" size="27">→<input type="text" name="v5_2" size="27"><br> <br><br> </form> </body> </html>

  • 引数を利用したい

    いつもお世話になっています。 さて、早速ですが 送られてきた、引数を値として使えないのでしょうか? <td><input type="checkbox" name="C1" value="1" onChange="func(C1)"></td> <td><input type="text" name="create_date"></td> <td><input type="text" name="transaction"></td> 上記HTML中のチェックボックスのname属性値を引数にfunc関数に渡しています。 function func(str) { document.form1.str.click(); } func関数内で渡された引数を、str変数に入れてそれを値として使いたいのですが、うまくいきません。 document.form1.str.click(); を document.form1.C1.click(); とするとうまく動きます。 よろしくお願いします。

  • 教えてプログラム

    Java Scriptで自動計算を行いたいのですが、うまいくいきません もう少しだと思うのですが、修正をお願いいたします。 在庫確保数+新規作成数*単価=合計で算出したいです。 NuNがなるべくでないようにしたいです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/> <title>予約登録</title> </head> <script language="javascript"> <!-- var amount = 3; var zei; var goukei; function calc(){ var total=0; var total2=0; var i=0; var go=0; var suti1,suti2; suti1 = document.myForm.d1.value; suti2 = document.myForm.d2.value; go=parseInt(suti1)+parseInt(suti2); while(i<amount*2){ total = total + document.myForm.elements[i].value*document.myForm.elements[++i].value; i++; } document.myForm.itotal.value = total; zei = total * 0.05; zei = Math.floor(zei); goukei = total + zei; document.myForm.goukei.value = goukei*go; } //--> </script> <body onload="calc()"> <FORM name="myForm" method="post"> <h2>予約登録</h2> <h3>商品一覧</h3> <table border="1" width="610"> <tr> <td>商品名</td> <td>単価</td> <td>販売可能数</td> <td>在庫確保数</td> <td>新規作成数</td> <td>金額合計</td> </tr> <tr> <td>稲荷寿司</td> <td>40<Input type="hidden" name="row0v" value="40"></td> <td>50</td> <td><input type="text" name="d1" onChange="calc()" value="0"></td> <td><input type="text" name="d2" onChange="calc()" value="0"></td> <td><input type="text" name="itotal" value="0"></td> </tr> <tr> <td>かんぴょう巻き</td> <td>40<input type="hidden" name="row1v" value="40"></td> <td>50</td> <td><input type="text" name="kanpyou1" onChange="calc()" value="0"></td> <td><input type="text" name="kanpyou2" onChange="calc()" value="0"></td> <td><input type="text" name="itotal2" value="0"></td> </tr> <tr> <td>おにぎり(梅干)</td> <td>90</td> <td>50</td> <td><input type="text" name="umeoni" value="0"></td> <td><input type="text" name="umeoni" value="0"></td> <td><input type="text" name="kanpyou" value="0"></td> </tr> <tr> <td colspan="5" align="right">単品合計金額</td> <td><input type="text" name="goukei" value="0"></td> </tr> </table> <tr> <td colspan="5" align="right">パッケージ合計金額</td> <td><input type="text" name="pakke" value="0"></td> </tr> <tr> <td colspan="5" align="right">総合計金額</td> <td><input type="text" name="sougoukei" value="0"></td> </tr> </table> <br> <br> <input type="submit" value="予約"> </form> </body>

  • formのtextフィールドが認識されない

    下記のようなフォームに対し、JavaScriptで処理を行おうとしています。 <form name="dateForm" method="post" action=""> <table> <tr><td>0</td> <td><input type='text' name='date[]' maxlength='8' size=12 value='20111001'></td> <td><input type='text' name='date2[]' maxlength='8' size=12 value=''></td></tr> <tr><td>1</td> <td><input type='text' name='date[]' maxlength='8' size=12 value='20111002'></td> <td><input type='text' name='date2[]' maxlength='8' size=12 value=''></td></tr> <tr><td>2</td> <td><input type='text' name='date[]' maxlength='8' size=12 value='20111003'></td> <td><input type='text' name='date2[]' maxlength='8' size=12 value=''></td></tr> </table> <input type='text' name='date_0' maxlength='8' size=12 value='20111000'><br><br> <input type="submit" name="button" value="Check" onClick="send_self();"> <input type="submit" name="button" value="Enter" onClick="set_action();"> </form> Checkボタン押下で上記の関数を呼び出し、テキストフィールドdate[0]の値を表示すると、(1)では「20111001」と正しい値が表示されますが、(2)では下記のエラーが出てしまいます。 「プロパティ '0' の値を取得できません: オブジェクトは Null または未定義です。」 また、 alert(document.dateForm.elements[0]); // … (3) alert(document.dateForm.date); // … (4) とすると、(3)では[object]、(4)では[undefined]と表示されます。 alert(document.dateForm.date_0.value); はvalueも正しく表示されobjectとしても正しく認識されるので、配列へのアクセスに問題があるように思うのですが…。 問題点と解決法をご存知の方がいらっしゃいましたら、どうぞよろしくお願い致します。m(_ _;)m

  • onClickで足し算をして答えを出したい

    過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 onClickで計算を始めて答えを<input type="text" name="t3">に表示したいのですが、エラーが出てしまいます。いろいろ試したのですが理由がわかりません。 ちなみにソースが以下です。 <html> <head> <title>計算</title> <SCRIPT language="JavaScript"> <!-- function keisan(){ document.f1.t3.value=parseInt(document.f1.t1.value)+parseInt(document.f1.t2.value); } //--> </SCRIPT> </head> <body> <center> <table border="1" width="700" height="200"> <from name="f1"> <tr> <td width="150">右側 <input type="text" name="t1" > </td> <td width="250"> <input type="radio" name="kei" value="+">+&nbsp;&nbsp;左側<br> <input type="radio" name="kei" value="-">-&nbsp;&nbsp;<input type="text" name="t2"><br> </td> <td width="150">c<br><input type="button" name="iri" value="&nbsp;&nbsp;=&nbsp;&nbsp;" onClick="keisan()"></td> <td width="150"> 答え<br> <input type="text" name="t3"></td> <tr> </form> </table> </center> </body> </html> おわかりの方がいましたらどうかご教授お願いします。

  • 追加したテキストボックスとテキストエリアの数の制御

    下記のようにテキストボックスとテキストエリアの数をボタンを押すことによって増やしていきます。 で、テキストボックスとテキストエリアは最大10個までとしたいのですが、どのようにしたらいいでしょうか? あとテキストエリアを追加していくとテキストエリアとテキストエリアの間が詰まってしまいます。間を空ける方法はないでしょうか? <script type="text/javascript"> function myAdd(){ var oTR=document.createElement("tr"); var c=count("mat"); var names=["mat","qua"]; for(var i in names){ var oTD = document.createElement("td"); var oTag = document.createElement("input"); oTag.setAttribute("type", "text"); oTag.setAttribute("name", names[i] + (c+1).toString()); oTD.appendChild(oTag); oTR.appendChild(oTD); } document.getElementById("t0").getElementsByTagName("tbody")[0].appendChild(oTR); } function count(name){ var tags=document.getElementsByTagName("input"); var c=0; var reg=RegExp("^"+name+"[0-9]+$"); for(var i=0;i<tags.length;i++){ if(tags[i].name.match(reg)){ c++; } } return c; } var tag_num = 4; function myTextAreaAdd(){ var oTag = document.createElement("textarea"); oTag.setAttribute("name", "foo" + tag_num++); var oDiv = document.getElementById("area"); oDiv.appendChild(oTag); } </script> </head> <body><form method="post" enctype="multipart/form-data" action="check.php"> <table id="t0" border> <tbody> <tr><td><input type="text" name="mat1" value=""></td> <td><input type="text" name="qua1" value=""></td> </tr> <tr><td><input type="text" name="mat2" value=""></td> <td><input type="text" name="qua2" value=""></td> </tr> <tr><td><input type="text" name="mat3" value=""></td> <td><input type="text" name="qua3" value=""></td> </tr> <tr><td><input type="text" name="mat4" value=""></td> <td><input type="text" name="qua4" value=""></td> </tr> </tbody> </table> <input type="button" value="追加する" onClick="myAdd()"> <br /> <span id="area"> <textarea name="foo1"></textarea> <textarea name="foo2"></textarea> <textarea name="foo3"></textarea> <textarea name="foo4"></textarea> </span><br /> <input type="button" value="追加する" onClick="myTextAreaAdd()"><br /> </form>

専門家に質問してみよう