• ベストアンサー

JavaScript初心者です・・・。

商品の注文書を作成しています。プロバイダのCGIを利用していて、計算等はJavaScriptを使用したいのですが・・・。 JavaScriptを使って商品の個数が入力されたところだけを計算するという方法を教えていただきたいのです。 その場合、s23DA=document.form1.s23DA.value*1500; 全ての項目を上記のように設定しており自動計算をさせようとしています。 しかし、個数が入力されていない項目もCGIで飛ばしたメールに入っているので、それを取り除きたいと考えています。 どなたかお力添え願いますm(_ _)m

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

  • ベストアンサー
  • Y_eRu
  • ベストアンサー率32% (33/101)
回答No.1

こんにちわ(o^-^o) 商品の個数が入力されたところだけ、ということは 他は何も入っていないのですよね? でしたらif文をかませたらいいのではないでしょうか? 「もし、個数が入力されていたら(form1が空じゃなかったら)、値を取って来る。」 if ( document.form1.s23DA.value.length != 0 ){  s23DA=document.form1.s23DA.value*1500; } って感じで・・。 見当違いでしたらすみません(汗) 失礼しましたm(_ _)m

hiro6295
質問者

補足

早速のご回答ありがとうございますm(_ _)m となると、全ての項目に上記のIF文をかませるということですか???

その他の回答 (2)

回答No.3

CGIはよくわかりませんが、for文で回したらどうですか? 個数のオブジェクト名を <input type="text" name="syohin0"> <input type="text" name="syohin1"> <input type="text" name="syohin2"> <input type="text" name="syohin3"> <input type="text" name="syohin4"> のようにして、 スクリプトで var syohin = new Array(); for(i=0;i<5;i++){ var tmpsyohin = document.form1["syohin"+i].value; if(tmpsyohin.length != 0 ) syohin[i] = tmpsyohin; } のような感じで。

  • Y_eRu
  • ベストアンサー率32% (33/101)
回答No.2

そうですね。 チェックしたいものすべてに書く必要があると思います^^; 私はシンプルなのが好きなので 短絡的にこういう考え方で作ってしまいますが もっとスマートなやり方がありそうですよね・・(汗)

hiro6295
質問者

お礼

では、さっそく組み込んでみたいと思います♪ ありがとうございました(⌒ー⌒)

関連するQ&A

  • javascriptの初心者です。

    初歩的質問で失礼します。 javascriptでフォームの中にテキスト欄が3つあり、 テキスト欄3に入力された数字が奇数なら赤、偶数なら青となるプログラムにしたいと思い、 下記のようにしまいしたが、elseの青文字にしかならずに悩んでいます。 本当に初心者ですいません。が、アドバイス頂けたら宜しくお願いいたします。            function men(){ tate=document.form1.text1.value; yoko=document.form1.text2.value; document.form1.text3.value=tate*yoko/2; if ((men%2)==0){ document.form1.text3.style.color="red"; }else { document.form1.text3.style.color="blue"; } }

  • Javascript 足し算

    ホームページ用見積もりフォーム 商品の値段を合計する。 一個ずつ足しての計算で処理してるのですが、商品がかなりの数になりそうです。 エクセルのSUMのように商品1から商品1000までを計算する関数を教えていただきたいと思っています。 JavaScriptは外部参照しています。 以下がJavaScriptのコードになります。 function keisan(){ // 設定開始 var tax = 5; // 消費税率 // 商品1 var price1 = document.form1.goods1.options[document.form1.goods1.selectedIndex].value; // 商品2 var price2 = document.form1.goods2.options[document.form1.goods2.selectedIndex].value; // 商品3 var price3 = document.form1.goods3.options[document.form1.goods3.selectedIndex].value; // 合計を計算 var total1 = parseInt(price1) + parseInt(price2) + parseInt(price3); // 設定終了 document.form1.field_total1.value = editNumberSeparated(total1); // 合計を表示 var tax2 = Math.round((total1 * tax) / 100); document.form1.field_tax.value = editNumberSeparated(tax2); // 消費税を表示 document.form1.field_total2.value = editNumberSeparated(total1 + tax2); // 税込合計を表示

  • 金額に3桁ごとにカンマを入れた、入力フォームの加算が出来ない。

    金額に3桁ごとにカンマを入れた、商品注文入力フォームを作りたいのですが、加算が出来ません。 困っています、どなたか教えてください。 よろしくお願いします。WinXP IE6.0を使っています。 (金額欄) 商品1×数量=商品1金額     計算OK 商品2×数量=商品2金額     計算OK (商品明細欄) 商品1 商品名+個数+商品1金額  表示OK 商品2 商品名+個数+商品2金額  表示OK 合計(商品1+商品2)は、商品2の金額しか表示しないので、困っています。 (ソースコード) function calcTotal() { var intTotalPrice = 0; var strEstimate = "\n------------------------------------------------------ \n" + "            ご注文ご明細 \n" + "------------------------------------------------------ \n"; if (document.form1.buyItem1.checked == true) { intTotalPrice= document.form1.prcItem1.value; strEstimate = strEstimate + "商品1    :" + parseInt(document.form1.NumItem1.selectedIndex + 1) + "個  " +document.form1.prcItem1.value + "円 \n"; } if (document.form1.buyItem2.checked == true) { intTotalPrice =document.form1.prcItem2.value; strEstimate = strEstimate + "商品2 :" + parseInt(document.form1.NumItem2.selectedIndex + 1) + "個  "    + document.form1.prcItem2.value + "円 \n"; } strEstimate = strEstimate + "------------------------------------------------------ \n" + "ご注文合計 "  + intTotalPrice + "円 "; document.form2.tarEstimate.value = strEstimate; }

  • Javascript 計算後の3桁区切り

    ホームページ用見積もりフォームをJavascriptで自動計算 縦に長いページで一番下に計算結果を表示 ページをスクロールしても、何時でも計算結果が見られるように、別のウィンドウ(レイヤー)でページ内に表示。 以上までは出来ました。 最後に計算結果を3桁区切りで表示させたいのですが、上手く出来ません。 お知恵をお貸しくださいませ。 Javascriptは外部参照しております。 3桁区切りのJavascriptを外部参照している同一のページに記入した方が良いか、別参照の方が良いかも教えていただければ幸いです。 以下がJavascriptのコードになります。 function keisan(){ // 設定開始 var tax = 5; // 消費税率 // 商品1 var price1 = document.form1.goods1.options[document.form1.goods1.selectedIndex].value; // 商品2 var price2 = document.form1.goods2.options[document.form1.goods2.selectedIndex].value; // 商品3 var price3 = document.form1.goods3.options[document.form1.goods3.selectedIndex].value; // 合計を計算 var total1 = parseInt(price1) + parseInt(price2) + parseInt(price3) ; // 設定終了 document.form1.field_total1.value = total1; // 合計を表示 var tax2 = Math.round((total1 * tax) / 100); document.form1.field_tax.value = tax2; // 消費税を表示 document.form1.field_total2.value = total1 + tax2; // 税込合計を表示 //右の窓に表示する金額 document.getElementById("display_account_amount").innerHTML = total1; document.getElementById("display_account_tax").innerHTML = tax2; document.getElementById("display_account_all").innerHTML = total1 + tax2; }

  • JavaScriptでデータ送信

    あるJavaScriptを使ったPerlスクリプトの改造を行っています。 <A href="JavaScript:dataTrans()" class="link">link</A>をクリックすることにより、 function dataTrans(){ if(startflg){return;} if(max == 0){alert("メッセージ");return;} document.form1.para0.value = data; document.form1.para1.value = data2; document.form1.submit(); } 上記データをCGIページに送っているようです。 このJavaScriptから送信したデータはCGI側で正常に表示されているのですが、Perlスクリプトの改造でリンク元制限を行うと、送信元のページ情報をCGI側で読み取ることができていないようで、制限ができないようです。よくわかりませんが・・・ <A href="http://">link</a>からCGIへリンクした場合は、正常にリンク元制限が行えます。 document.form1.para0.value = data; document.form1.para1.value = data2; document.form1.submit(); この部分を変更すれば、リンク元ページ情報が正常に受信できるのではと考え、 http://pzxa85.hp.infoseek.co.jp/www/wwwjsfor.htm ↑ページ等の解説ページをみてみましたが、よくわかりませんでした。 JavaScriptは勉強したことがなく、Perlも入門者程度の知識です。わからないことだらけで、言いたいことが上手く伝えられませんが、出来るだけ調べて説明させてもらいますので、どうぞ宜しくお願いいたします。

  • javascriptからCGIへの値渡し

    cookieは利用しない方向で考えています。 HTML上のdocument.form01.のsubmitが押下されたら一度手入力されたデータ(userinput)を加工し、 別のフォームform02.valueに格納してtest.cgiにPOSTで投げる動作を期待しています。 下記だとページ遷移無しで一時的な格納まで確認しましたが CGIへの送信が機能していないようです。 どの様にすべきでしょうか? [html] <script type="text/javascript"> <!-- function onSubmit() { document.form02.sendform.value = '\"' + document.form01.userinput.value + '\"'; document.form02.submit(); } --> </script> <body> <form name="form02" method="POST" action="test.cgi"> <input type="hidden" name="sendform" value=""> </form> <form method="POST" action="" name="form01"> <input type="text" name="userinput"> <input type="submit" value"送信" onclick="return onSubmit();"> </form> </body> </html>

  • javascriptでCGIを実行するには

    htmlタグ <form method="post" action="・・・/cgi-bin/gogo.cgi"> <input type="text" name="name" size="20" value=""> <input type="submit" value="送信"> 上記で送信ボタンを押すとcgi側でnameを受け取れますが、 以下の場合はcgiは動作するのですが、nameを受け取れません、 受け取れる方法を教えてください。 <script type="text/javascript" language="javascript"> <!-- function gogo(){ document.write('<img src="・・・/cgi-bin/gogo.cgi">'); } // --> </script> </head> <body> <form method="post" action="javascript:gogo()"> <input type="text" name="name" size="20" value=""> <input type="submit" value="送信"> </form>

  • JavaScript 初心者です。

    急遽ホームページ作成をやることになり大変困っています。 何もかも初心者で全くわからない状態ですのでよろしくお願い致します。 お客様情報入力で送信ボタンで押すとメールで情報が届く様にしています。 送信ボタンを押したときに、入力チェックをかけているのですが、複数のテキストボックス(郵便番号を入力するテキストボックス)のチェック方法が分かりません。 郵便番号は、3桁-4桁で入力して頂く様にしています。 HTML(郵便番号のみです)・・・ <INPUT maxlength="3" size="3" type="text" name="iyubin" value="" style="ime-mode:disabled;" id="01">-<INPUT type="hidden" name="iyubin" value="-"><INPUT maxlength="4" size="4" type="text" name="zyubin" value="" style="ime-mode:disabled;" id="02"> JavaScriptでの入力チェック(省略をしていますが、正常に動作しているヵ所です)・・・ //お客様情報 function check(){ var flag = 0; // お名前 if ((flag==0) && (document.form.gName1.value == "")){ flag = 1; } if(flag){ window.alert('【お名前】を入力して下さい。'); // 入力されていない場合は警告ダイアログを表示 return false; // 送信を中止 } // ふりがな if ((flag==0) && (document.form.hName2.value == "")){ flag = 1; } if(flag){ window.alert('【ふりかな】を入力して下さい。'); // 入力されていない場合は警告ダイアログを表示 return false; // 送信を中止 } // 性別 if((flag==0) && (document.form.iSeibetsu.length)) { // 選択肢が複数ある場合 flag = 1; var i; for(i = 0; i < document.form.iSeibetsu.length; i ++){ if(document.form.iSeibetsu[i].checked){ flag = 0; break; } } } else{ // 選択肢が1つだけの場合 if((flag==0) && (!document.form.iSeibetsu.checked)){ flag = 1; } } if(flag){ window.alert('【性別】を選択して下さい。'); // 選択されていない場合は警告ダイアログを表示 return false; // 送信を中止 } //このヵ所に郵便番号の入力チェックを入れたいです。 すみませんが、よろしくお願い致します。

  • どこにJavascriptが使われてるかわからない

    このタグのどこにJavascriptが使われてるか教えてもらえますか? <body> <form> <input type="button" value="HOMEページへ移動" onclick="document.location = 'http://www.yahoo.co.jp/';" /> </form> </body> これです。 document.location がJavascriptなのでしょうか?

  • javascriptを勉強し始めました

    それで簡単なアンケートを作りたいと思い、入力フォームを作って間違えている箇所があれば確認ボタンを押したときに入力に誤りがある項目をアラートで出し、そのアラートに誤っている項目をそのアラート一つにまとめて出したいのですが、出ません。わかないので質問させていただきました。よろしくお願いします。ソースになります。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>課題</title> <script language ="javascript"> <!-- function datachk(){ if(document.form1.last.value == "") { alert("・氏名(姓)が入力されていません。"); }else{ if(document.form1.last.value.match( /[^一-龠ァ-ヶぁ-ゞA-Z]+/ ) ){ alert("・氏名(姓)は、全角文字のみで入力して下さい。"); }else{ if(document.form1.first.value == "") { alert("・名前(名)が入力されていません。"); }else{ if(document.form1.first.value.match( /[^一-龠ァ-ヶぁ-ゞA-Z]+/ ) ){ alert("・名前(名)は、全角文字のみで入力して下さい。"); } } } } } //--> </script> </head> <body> <div align="center"> 情報入力 </div><br> <br> 以下に、情報を入力してください。<br> <br> <form name = "form1"> *氏名(姓): <input type = "text" name = "last" value = ""><br> (全角10字入力可)<br> *氏名(名): <input type = "text" name = "first" value = ""><br> (全角10字入力可)<br> *性別: <input type = "radio" name = "men" value = "男">男 <input type = "radio" name = "women" value = "女">女<br> <input type="button" value="回答" onClick="javascript:datachk();"><br> </form> </body> </html>

専門家に質問してみよう