数字の合計をチェックする方法

このQ&Aのポイント
  • 合計数を入力し、AとBの枚数を入力した数の合計が正しいかどうかをチェックする方法について教えてください。
  • ジャバスクリプト初心者のため、サンプルスクリプトが見つからず困っています。
  • HTMLフォームを使用して、合計数とA、Bの枚数を入力し、ボタンをクリックすると合計が正しいかどうかをチェックするスクリプトを作成したいです。
回答を見る
  • ベストアンサー

数字の合計をチェック

お世話になります。 サンプルスクリプト探してましたが見つからなかったのでヒントとか教えてもらえれば助かります。 やりたいことは、 合計数を入力→AとBにそれぞれ枚数を入力 そのとき合計数とAとBにそれぞれ枚数を入力した数の合計が 合っていれば"合ってます" 違っていれば"違っています" とアラートを出したいのですが。 ジャバスクリプト超初心者ですのでどうか宜しくお願いします ------------------------------ <HTML> <HEAD> <TITLE> 合計数のチェック </TITLE> </HEAD> <SCRIPT LANGUAGE="javascript"> </SCRIPT> <BODY> <form name="form"> <p>合計数 <input name="total" type="text" id="total" size="5"> 枚</p> <p>A <input name="kazu1" type="text" id="kazu1" size="5"> 枚</p> <p>B <input name="kazu2" type="text" id="kazu2" size="5"> 枚</p> <p> <input type="submit" name="button" id="button" value="チェック"> </p> </form> </BODY> </HTML> ------------------------------

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

  • ベストアンサー
回答No.2

ていせいだぁ~!ねぼけてた。ごめんなさい。 var a = document.getElementById( 'kazu1' ); は、 var a = document.getElementById( 'kazu1' ).value; if( a + b == c) ~ とか if( c-b-a == 0) ~ とか if( !(c-b-a) )~ とか、 <input type="submit" name="button" id="button" value="チェック"> を <input type="submit" name="button" id="button" value="チェック" onclick="hoge()"> みたいにして function hoge() { //ここにぷろぐらむを。 }

shimapiyo
質問者

お礼

お世話になります。 訂正ありがとうございます。 昨日テストしてましたがなかなかうまくいかなかったので もう一度考えてみようと思って保留にしておりましたが本日無事動きました。結局全部教えてもらってしまってホント助かりました。 ありがとうございました。

その他の回答 (1)

回答No.1

ひんとでいいんだよね。 まず、すうじのしゅとくほうほう。 var a = document.getElementById( 'kazu1' ); でも、これはすうちじゃなくてもじあつかいなので、すうちになおす。 a = parseInt( a, 10 ); すうちのひかくは、 if( a == b ) { alert('おなじ'); } else { alert('ちがう'); } とか、もしくは alert( a == b ? 'ちがう': 'おなじ'); とか? がんばってね。

関連するQ&A

  • 同一nameの input type="text" の合計を計算したい

    初めて質問させて頂きます。 form 内で同じname名を付けられたテキストフィールドの値の合計を計算し、その値に定数を乗じた値を表示させたいのですが、出来ずに困っております。 name名を別にすれば簡単に出来そうなのですが、このinputが別CGIからの受け取りの関係で数が不定で同一nameが付いてしまいます。(inputは1個以上で上限は無し) CGI側を書き換える事は自分の技術的に不可能なので、このような質問となりました。 以下は自分なりに試行錯誤の末の拙いソースです。 どなたかお分かりになる方、ご教授を宜しくお願い致します。 <html> <head> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> <!-- function kakunin() { var sub = Form.getInputs('form1', 'text'); ( var subtotal = ~~~; ここに上で得た数字を合計するみたいなものがくるのかなと・・・) var total = subtotal * 200; document.form1.field_total.value = total; // 合計を表示 } // --> </script> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <form action="" name="form1"> <table> <tr><td><input name="kazu" type="text" value="2"></td></tr> <tr><td><input name="kazu" type="text" value="1"></td></tr> <tr><td><input name="kazu" type="text" value="3"></td></tr> <tr><td>・・・増えたりします・・・</td></tr> <tr><td><input type="button" size="8" onclick="kakunin()" value="合計を確認"></td></tr> <tr><td><input type="text" name="field_total" size="30" value="total"></td></tr> </table> </form> </body> </html>

  • javaで name=id[?] を指定する方法とは?

    ショップ運営で、商品一覧から+-ボタンでそれぞれ数の増減をさせるよう、ほかのサイトを参考にして下記のようにjavascriptで記述してみました。 このうち、商品2と3はボタンが機能したのですが、商品1は数の増減ができません。 おそらく要素名に(name=id[1])と[]で囲っているからだと思うのですが、この[]を取らないまま、ボタンを機能させる方法はありますでしょうか? よろしくお願いします。 <FORM> 商品1:<INPUT type=text name=id[1] value=3 size=4> <INPUT type=button value="+" onClick="plus(this.form.id[1])"> <INPUT type=button value="-" onClick="minus(this.form.id[1])"> <BR> 商品2:<INPUT type=text name=id2 value=3 size=4> <INPUT type=button value="+" onClick="plus(this.form.id2)"> <INPUT type=button value="-" onClick="minus(this.form.id2)"> <BR> 商品3:<INPUT type=text name=id3 value=3 size=4> <INPUT type=button value="+" onClick="plus(this.form.id3)"> <INPUT type=button value="-" onClick="minus(this.form.id3)"> </FORM> <SCRIPT language="JavaScript"> <!-- function plus(chk){chk.value++; if (chk.value==6) {chk.value=5} } function minus(chk){chk.value--; if (chk.value==0) {chk.value=1} } // --> </SCRIPT>

  • javascriptの計算結果をvalue=""に

    javascriptの計算結果をフォームの中のvalue=""内部に表示し、送信できるようにしたいというのが質問の趣旨です。                 記 下記の2つのファイルで、フォームから入力した数値同士の「足し算の結果」を表示できます。 (HTMLファイル下段 <p id="message"></p>の部分で表示します。) ******************************************** 【HTML】 <script language="JavaScript" type="text/javascript" src="js/culc.js"></script> <form name="f1"> <input type="text" id="text1" name="text1" size="10" maxlength="10" />+ <input type="text" id="text2" name="text2" size="10" maxlength="10" /> <input type="button" value="足す" onclick="readText()" /> </form> <p id="message"></p> ******************************************* 【JAVASCRIPT(culc.js)】 function readText() { var text1 = document.getElementById("text1"); var text2 = document.getElementById("text2"); var message = document.getElementById("message"); var str_val1 = text1.value; var str_val2 = text2.value; var sum; if (isNaN(str_val1) || str_val1 == "" || isNaN(str_val2) || str_val2 == "") { textMessage = "数値以外の文字が入っています"; } else { //sum = str_val1 + str_val2; sum = parseFloat(str_val1) + parseFloat(str_val2); textMessage = "合計は、" + sum + "です"; } message.innerHTML = textMessage; } ************************************************ 【質問】 次にこのHTMLを改造し、フォームから計算値を送信することとしました。 ************************************************ 【HTML】 <script language="JavaScript" type="text/javascript" src="js/culc.js"></script> <form name="f1"> <input type="text" id="text1" name="text1" size="10" maxlength="10" />+ <input type="text" id="text2" name="text2" size="10" maxlength="10" /> <input type="button" value="足す" onclick="readText()" /> </form> <form action="form.cgi" method="post" name="form2" id="form2"> <input type="hidden" name="plus" value="<p id="message"></p>"> <input type="button" value="送信" onClick="disableButton()" name="button1"> </form> ************************************************ 問題点 上記のように、計算結果を表示出来るはずの<p id="message"></p>を送信フォームのvalue=の直後に記載しただけなのですが、なぜか送れません。 <p id="message"></p> を独立して記載しているときは計算値をそのまま表示していたのですが、value="<p id="message"></p>"> と value= の中に記載した瞬間に単なる文字の羅列になってしまうようです。 value="<p id="message"></p>"> value='<p id="message"></p>'> value="<p id='message'></p>"> value='<p id='message'></p>'> と試してみましたが、いずれもうまきませんでした。 どのようにすれば、value="" の中に計算結果が入るか教えてください。 宜しくお願い致します。

  • 自動計算の合計金額を次ページで表示

    いつも『教えて!goo』を活用させていただきありがとうございます。 またお世話になます。 今回はJavascriptで自動計算させた合計金額を、別ページで表示させることで困っております。 同じページで合計金額の表示はでき、それを基にパラメータで引き渡そうとしているのですが、なかなかうまくいきません。 同じページで合計金額の表示のタグ構成は以下のとおりです。 <自動計算側ページ:index.html>============ <html> <head> <SCRIPT language="JavaScript"> <!-- function cal(f){ var price=0; for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked) price+=parseInt(f[i].value); } f.price.value=price; } //--> </SCRIPT> </head> <body> <form> <p> <input type="radio" name="group1" value="30" />金:30円 <input type="radio" name="group1" value="20" />銀:20円 <input type="radio" name="group1" value="10" />銅:10円 </p> <p> <input type="radio" name="group2" value="400" />ダイヤモンド:300円 <input type="radio" name="group2" value="300" />サファイア:200円 <input type="radio" name="group2" value="200" />ルビー:100円 <input type="radio" name="group2" value="100" />アメジスト:100円 </p> <p> <input type="radio" name="group3" value="3000" />リチウム:3,000円 <input type="radio" name="group3" value="2000" />チタン:2,000円 <input type="radio" name="group3" value="1000" />白金:1,000円 </p> <hr /> <p><input type="button" value="合計金額を計算" onClick="cal(this.form)" /><br /> 合計:<input type="text" name="price" style="text-align:right" size="10" />円</p> </form> </body> </html> <p><input type="button" value="合計金額を計算" onClick="cal(this.form)" /><br /> 合計:<input type="text" name="price" style="text-align:right" size="10" />円</p> の箇所を<input type="submit" value="次ページで計算" />に書き換えて、 function cal(f){内に var pram="price="+price location.href="price.html?"+price; return false; を追記し、以上でテストすると <index.html?group1=30&group2=300&group3=1000#>といった風に radioボタンのnameとvalueが付いてしまい<price.html>にリンクしません。 以下に<合計金額表示ページ:price.html>も明記させていただきますので 皆様には、大変ご迷惑をおかけしますが、何卒ご回答の程よろしくお願い申し上げます。 <合計金額表示ページ:price.html>============ <html> <head> <SCRIPT language="JavaScript"> <!-- function pramWrite() { var pram=location.search; if (!pram) return false; pram=pram.substring(1); document.form1.price.value=pram; } //--> </script> </head> <body onload="pramWrite()"> <form name="form1" action="#"> 合計:<input type="text" name="price" style="text-align:right" size="10" />円 </form> </body> </html>

  • チェックボックスとの連動

    白黒とカラーの項目を連動させています。例えば白黒のチェックをはずしてカラーにチェックを入れるとすでに白黒で選択してた場合、金額が合計に加算されてしまいます。チェックをはずした時点で選択項目の金額をリセットさせたいのですが解決方法が見つかりません。Javascript勉強中で正直よくわかっていません。下記スクリプトもあっちこっち調べながら組み合わせたものです。解決策をいただけると助かります。よろしくお願い致します。 <script language="javascript"> <!-- n_table1 = new Array(0,100,200); n_table2 = new Array(0,300,400); function keisan(obj) { var outStr=""; var total=0; total = total + n_table1[document.form1.koumoku1.selectedIndex] * document.form1.kazu1.value; total = total + n_table2[document.form1.koumoku2.selectedIndex] * document.form1.kazu1.value; outStr = total; document.form1.goukei.value=eval(outStr); } function ctrl_check01(check02_checked) { document.getElementsByName("idcheck2")[0].disabled = check02_checked; document.getElementsByName("koumoku2")[0].disabled = check02_checked; } function ctrl_check03(check04_checked) { document.getElementsByName("idcheck")[0].disabled = check04_checked; document.getElementsByName("koumoku1")[0].disabled = check04_checked; } // --> </script> <form name="form1" METHOD="POST"> <table cellspacing="0" cellpadding="8" border="1" bordercolor="#666"> <tr> <td>白黒</td> <td><input type=checkbox name="idcheck" id="idcheck" onClick="ctrl_check01(this.checked);"> 白黒 <select name="koumoku1"> <option>選択 <option>--------------A(100) <option>--------------B(200) </select> </tr> <tr> <td>カラー</td> <td><input type=checkbox name="idcheck2" id="idcheck2" onClick="ctrl_check03(this.checked);"> カラー <select name="koumoku2"> <option>選択 <option>--------------A(300) <option>--------------B(400) </select></td> </tr> <tr> <td colspan="2"></td> </tr> <tr> <td>総枚数</td> <td><input type="text" name="kazu1" size="8" maxlength="12" value="0"> 枚</td> </tr> <tr> <td colspan="2"></td> </tr> <tr> <td>合計</td> <td><input type="text" name="goukei" size="8" maxlength="12" value="0"> 円</td> </tr> </table> <input type="button" value="計算する" onClick="keisan(this.form)"> </form>

  • javascriptの記述方法について

    こんにちわ。 今、以下のような記述で、kei1~kei5までの合計をtotalに出そうと考えましたが、 function allcalc(){}内に書く記述で困っています。 form名を分けているのは、別の関数で各行の小計(kei1~5)を出すために分けてみましたが、あまり意味がなさそうで一つのform名に変更しようかとも思っています。 <HTML> <HEAD> <TITLE>Test</TITLE> <SCRIPT type="text/javascript"> <!-- function allcalc(total){ var al_total = 0; for (i=1; i <= 10; i++){ elementkei="total.form[" + i +"].element[2].value" if(elementkei != "") {al_total += elementkei} } document.form6.total.value = al_total; } //--> </SCRIPT> </HEAD><BODY><TABLE><FORM name="form1"> <TR><TD><INPUT type="text" name="baika1"></TD> <TD><INPUT type="text" name="suryou1"></TD> <TD><INPUT type="text" name="kei1"></TD> </FORM> <FORM name="form2"> <TR><TD><INPUT type="text" name="baika2"></TD> <TD><INPUT type="text" name="suryou2"></TD> <TD><INPUT type="text" name="kei2"></TD> </FORM> ・・・・・・・・・・・・・これが5つあります <FORM name="form6"> <TR><TD>合計</TD> <TD><INPUT type="text" name="total"> <TD><INPUT type="button" name="go" value="合計計算" OnClick="allcalc(document)"></TD> </FORM></TABLE></BODY></HTML> これを動作させてみると、「total.form[がNullかオブジェクトではありません」とエラーが流れます。 恐らく、allcalcの引数とその参照の仕方が悪いと思うのですが、 書き方を変えてみても、同じようなエラーで止まってしまいます。 どなたか方法を教えていただけないでしょうか。

  • 配列の使い方

    JavaScript 初心者です。 下記ソースでinput type="text"でname="kazu1,name="kazu2"のように2個限定で使っているのですが将来的にDBから読んだ数分に変わる予定です。 その場合 eval(document.myForm.kazu1.value)+ の表現はどのように変えたらいいでしょうか。 配列の数はi7で持ってきています。 <script language="JavaScript"><!-- function ttlValue(i7){ goukei = eval(document.myForm.kazu1.value)+eval(document.myForm.kazu2.value); alert("sum "+goukei+"です"); } // --></script> </head> <table border=1> <tr> <td width="40%" ><input type="text" name="kazu1" value="10">%</td> <td width="40%" ><input type="text" name="kazu2" value="10">%</td> </tr> <tr> <td><input type="submit" name="button" value="keisan" onClick="ttlValue(2)" ></td> <td></td> </tr> </table> </form>

  • javascript フォームについて

    javascriptでフォームを作ったのですが、複数フォームの空白をチェックするにはどのようなプログラムにすればよろしいでしょうか? onsubmit="return chk1(this)でフォーム送信が押されたときにチェックを行おうと考えているのですが そのときのchk()の中身やif文の条件がわからないのです。 どのようにすれば上手くいくでしょうか? 回答よろしくお願いします。 ソースは以下のとおりです。 <script language="javascript"> function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } function chk1(frm){ if(frm.elements["txt1"].value==""){ alert("解答欄に空白があります"); /* FALSEを返してフォームは送信しない */ return false; }else{ /* TRUEを返してフォーム送信 */ return true; } } </script> <form name="nform" method="POST" action="mailto:webmaster@a.com?subject=問い合せ" enctype="text/plain"> <p>問1</p> <p> (1)<input type="text" name="kaitouran11" size="20"> (2)<input type="text" name="kaitouran12" size="20"> (3)<input type="text" name="kaitouran13" size="20"> (4)<input type="text" name="kaitouran14" size="20"> </p> </form> <form name="nform2" method="POST" action="mailto:webmaster@leposystems.com?subject=問い合せ" enctype="text/plain"> <p>問2</p> <p> (1)<input type="text" name="kaitouran21" size="20"> (2)<input type="text" name="kaitouran22" size="20"> (3)<input type="text" name="kaitouran23" size="20"> (4)<input type="text" name="kaitouran24" size="20"> </p> </form> <form name="nform3" method="POST" action="mailto:webmaster@leposystems.com?subject=問い合せ" enctype="text/plain"> <p>問3</p> <p> (1)<input type="text" name="kaitouran31" size="20"> (2)<input type="text" name="kaitouran32" size="20"> (3)<input type="text" name="kaitouran33" size="20"> (4)<input type="text" name="kaitouran34" size="20"> </p> </form> <input type="button" value="送信" onClick="send()" onsubmit="return chk1(this)">

  • javascript ボタンによる表示について

    javascriptのボタンによる表示について質問があります. 質問内容と致しましては,ボタンを表示した時に隠れている問題文を出現させるソースを作っているのですが,うまくプログラムが動作しません. おそらく,window.onloadの使い方が理解しきれてないからだとは思いますが, よくわかりませんので質問させていただきました. 回答の方よろしくお願いします. 以下ソースです. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> function hideForm1(){ document.getElementById("formblock1").style.display = "none"; } function showForm1() { document.getElementById("formblock1").style.display = "block"; } window.onload = function(){ hideForm1(); }; function hideForm2(){ document.getElementById("formblock2").style.display = "none"; } function showForm2() { document.getElementById("formblock2").style.display = "block"; } window.onload = function(){ hideForm2(); }; function hideForm3(){ document.getElementById("formblock3").style.display = "none"; } function showForm3() { document.getElementById("formblock3").style.display = "block"; } window.onload = function(){ hideForm3(); }; function send(){ function chk1(frm, names){ var r = true; for(var i = 0; i < names.length; i++) r &= (frm.elements[names[i]].value !=""); return r; } var r = true; r &= chk1(document.forms['nform'],['kaitouran11','kaitouran12','kaitouran13','kaitouran14','kaitouran21','kaitouran22','kaitouran23','kaitouran24','kaitouran31','kaitouran32','kaitouran33','kaitouran34']); if(r){ document.forms['nform'].submit(); }else{ alert('解答欄に空白があります'); } } </script> </head> <body> <form> <input type="button" value="問題1" onclick="showForm1(); this.disabled = true;"/> </form> <form> <input type="button" value="問題2" onclick="showForm2(); this.disabled = true;"/> </form> <form> <input type="button" value="問題3" onclick="showForm3(); this.disabled = true;"/> </form> <form name="nform" method="post" action="./kaitou1.php" enctype="multipart/form-data"> <div id="formblock1"> <p> 問題1</p> <p>問題文</p> <p> (1)<input type="text" name="kaitouran11" size="14"> (2)<input type="text" name="kaitouran12" size="14"> (3)<input type="text" name="kaitouran13" size="14"> (4)<input type="text" name="kaitouran14" size="14"> </p> </div> <div id="formblock2"> <p> 問題2</p> <p>問題文</p> <p> (1)<input type="text" name="kaitouran21" size="14"> (2)<input type="text" name="kaitouran22" size="14"> (3)<input type="text" name="kaitouran23" size="14"> (4)<input type="text" name="kaitouran24" size="14"> </p> </div> <div id="formblock3"> <p> 問題3</p> <p>問題文</p> <p> (1)<input type="text" name="kaitouran31" size="14"> (2)<input type="text" name="kaitouran32" size="14"> (3)<input type="text" name="kaitouran33" size="14"> (4)<input type="text" name="kaitouran34" size="14"> </p> </div> </form> <input type="button" value="送信" onclick="send()"> </body> </html>

  • 出力した文字が消えてしまう(初心者)

    JavaScriptを勉強し始めて、基本的なコードだと思いますが、行き詰っています。すみませんが、教えて下さい。 期待:数値を計算してテキストボックスに残す 問題:一瞬テキストボックスに出るが、すぐに消えてしまう 環境:IE8,Firefox [ コード ] <HEAD> <SCRIPT language="JavaScript"> <!-- var total = 0; function keisan(){ total = parseInt(document.frmMain.price.value) + 700; document.frmMain.total.value = total; } //--> </SCRIPT> </HEAD> <BODY> <FORM name="frmMain"> <INPUT type="text" name="price" size="7">円<BR> <BUTTON onClick="keisan()">計算</BUTTON><BR> <BR> 合計:<INPUT type="text" name="total">円<BR> </FORM> </BODY> ボタンをクリックすると、アドレスにテキストボックスで入力したデータが入りページが切り替わってしまいテキストボックスが空になってしまいます。 アドレスには ~/Sample1_1.html?price=32&total=732 のようになります。よろしくお願いします。

専門家に質問してみよう