javascriptで複数の計算を同時にしたい

このQ&Aのポイント
  • javascriptで複数の計算を同時に行いたい場合、%を含む計算方法について困っています。
  • (aに入力された数字+aの5%)+bに入力された数字÷cで選択された数字+最後に10を足して、答えをdに表示したいです。
  • 小数点以下は切捨てまたは切り上げ、表示されないようにしたいです。
回答を見る
  • ベストアンサー

javascriptで複数の計算を同時にしたい

いろいろ調べたのですが私の頭では%を含む書き方がわからず困っています。 具体的にやりたいことは以下です (aに入力された数字+aの5%)+bに入力された数字÷cで選択された数字+最後に10を足して、答えをdに表示 小数点以下は切捨てor切り上げどちらでもかまいませんが、表示されないようにしたいです。 <input name="a" value=""> <input name="b" value=""> <input type="radio" name="c" value="2"> <input type="radio" name="c" value="4"> <input type="radio" name="c" value="7"> <input type="radio" name="c" value="9"> <input onclick=clac() value="計算" type=button> <input name="d" value=""> よろしくお願いします。

  • skr73
  • お礼率100% (3/3)

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

切り捨てceil、四捨五入round、切り捨てfloorでできます 5%を足すのは単に1.05をかければいいのでは? <script> function calc(f){ var val=0; var val_a=parseFloat(f.elements["a"].value); var val_b=parseFloat(f.elements["b"].value); var val_c=0; for(var i=0;i<f.elements["c"].length;i++){ if(f.elements["c"][i].checked){ val_c=parseFloat(f.elements["c"][i].value); } } val=val_a * 1.05 + val_b / val_c + 10; val=Math.ceil(val);//切り上げ floorなら切り捨て f.elements["d"].value=val; } </script> <form> <p> <input name="a" value=""> <input name="b" value=""> <input type="radio" name="c" value="2">2 <input type="radio" name="c" value="4">4 <input type="radio" name="c" value="7">7 <input type="radio" name="c" value="9">9 <input onclick="calc(this.form)" value="計算" type="button"> <input name="d" value=""> <p> </form>

skr73
質問者

お礼

やりたかったことを全部きれいにまとめていただき、ありがとうございますm(_ _)m 切り上げ、切捨てまで書いていただき、とても助かりました! ありがとうございました!

その他の回答 (1)

  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.1

function clac() { var a_value = Number(document.getElementsByName("a")[0].value); var b_value = Number(document.getElementsByName("b")[0].value); var radioObj = document.getElementsByName("c"); for ( i=0; i<radioObj.length; i++){ if(radioObj[i].checked) { var c_value = Number(radioObj[i].value); } } var d_value = ((( a_value + 0.05 * a_value ) + b_value ) / c_value ) + 10; document.getElementsByName("d")[0].value = d_value; } 上記でどうでしょう? ご参考まで。

skr73
質問者

お礼

ありがとうございました。 少しだけ、やりたいことと違ったのですが、修正したらうまく動きました! 説明が下手でごめんなさいm(_ _)m

関連するQ&A

  • jQueryで複数のラジオボタンを処理

    jQueryを最近使い始めました。 以下のようなことをしたいのですが、いいやり方が分かりません。 jQueryを使ってページの読み込み後すぐに、ラジオボタンにチェックを入れたいと思っています。 以下のようにすると実際にチェックが入りました。 HTML <input type="radio" name="a" value="1" /> <input type="radio" name="a" value="2" /> jQuery if(!$("input:radio[name=a]:checked").val()){  $("input:radio[name=a]:first").attr("checked" , "checked"); } ラジオボタンが複数ある場合、上記のjQueryのnameの値を変えたものを増やしていけば対応できたのですが、ラジオボタンがたくさんある場合、同じようなスクリプトが何行も増えてしまいます。 うまく関数にする方法やその他よい対処法はないでしょうか。 <input type="radio" name="a" value="1" /> <input type="radio" name="a" value="2" /> <input type="radio" name="b" value="1" /> <input type="radio" name="b" value="2" /> <input type="radio" name="c" value="1" /> <input type="radio" name="c" value="2" /> … if(!$("input:radio[name=a]:checked").val()){  $("input:radio[name=a]:first").attr("checked" , "checked"); } if(!$("input:radio[name=b]:checked").val()){  $("input:radio[name=b]:first").attr("checked" , "checked"); } if(!$("input:radio[name=c]:checked").val()){  $("input:radio[name=c]:first").attr("checked" , "checked"); } …

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

  • フォームに入力された値を計算する方法

    私はまったくの初心者なのですがどなたか教えて下さい。 ●A,B,Cという3つの入力フォームがあるとします。 Aのフォームに入力された数字は「A÷20」という値に、 Bのフォームに入力された数字はそのまま、 Cのフォームに入力された数字は「C×10」という値に変更して、 (A+C)÷B×30という計算を行なって、その答えを Dのフォームへ表示するというシステムをcgiやphpで作りたいのです。 あれこれと試行錯誤しながら、javascriptでなんとか出来たんですが… どなたか教えて頂けませんか? function keiri() { a = document.takeko.case.value; a = eval(a); a = a / 20 b = document.takeko.time.value; b = eval(b); c = document.takeko.days.value; c = eval(c); c = c * 10 ans = (a + c) / c * 30; document.spec.result.value = ans; } <form name="takeko"> <input name="case" type="text" size="12"> <input name="time" type="text" size="12"> <input name="days" type="text" size="12"> <input name="button" type="button" onClick="keiri()" value="CLICK"> <input name="result" type="text" size="12"> <br></form>

    • 締切済み
    • PHP
  • ラジオボタンとテキストを同時にグレーアウトさせる

    <input type=radio name="1" value = 'A1'">A1<br> <input type=radio name="1" value = 'A2'">A2<br> <input type=radio name="1" value = 'A3'">A3<br> <input type=radio name="1" value = 'A4'">A4<br> <input type=radio name="1" value = 'A5'">A5<br> <form> <input type=radio name="tex" onClick="textform.textin.value = 'B1'">B1<br> <input type=radio name="tex" onClick="textform.textin.value = 'B2'">B2<br> <input type=radio name="tex" onClick="textform.textin.value = 'B3'">B3<br> <input type=radio name="tex" onClick="textform.textin.value = 'B4'">B4<br> <input type=radio name="tex" onClick="textform.textin.value = 'B5'">B5<br> </form> <form id="textform" action="#"> ここに文字が表示されます <input id="textin" type="text" size="30"> </form> A1を選択した場合、B2とB4とテキストエリアをグレーアウトさせる A2を選択した場合、B3とテキストエリアをグレーアウトさせる この記述の方法がわかりません。 初心者ですので、どなたかご教授おねがいします。

  • 複数のラジオボタンのチェック

    複数のラジオボタンが全て選択されているかどうかのチェックのJavaScriptをすっきりした形で書くのは、どうしたらいいでしょうか? 下記のようですと、ダラダラと記述するようになってしまいます。 どなたかご教授ください。 --------------------------------------- <script type="text/javascript"> function insert_onClick() { j=0; for (i=0 ;i < document.F1.a11.length ; i++){ if (document.F1.a11[i].checked) { j=1; } } } </script> <form action="check.php" name="F1" onsubmit="return insert_onClick()"> 各valueは0~4まであります <input type="radio" name="a11" value="0"> <input type="radio" name="a12" value="0"> <input type="radio" name="a21" value="0"> <input type="radio" name="a22" value="0"> <input type="radio" name="b11" value="0"> <input type="radio" name="b12" value="0"> <input type="radio" name="b21" value="0"> <input type="radio" name="b22" value="0"> ---------------------------------------

  • 最も多くチェックされた項目を調べる

    javascriptで最も多くチェックされた項目を調べて それぞれのページに分岐するようにしたいです。 以下はサンプル <form onSubmit="return color(this)"> 好きな動物は? <label><input type="radio" name="q1" value="A">うさぎ</label> <label><input type="radio" name="q1" value="B">カメ</label> <label><input type="radio" name="q1" value="C">イルカ</label> <label><input type="radio" name="q1" value="D">くま</label> 好きな場所は? <label><input type="radio" name="q2" value="A">空</label> <label><input type="radio" name="q2" value="B">森</label> <label><input type="radio" name="q2" value="C">海</label> <label><input type="radio" name="q2" value="D">畑</label> 好きな食べ物は? <label><input type="radio" name="q3" value="A">豆腐</label> <label><input type="radio" name="q3" value="B">ブロッコリー</label> <label><input type="radio" name="q3" value="B">なす</label> <label><input type="radio" name="q3" value="D">ハンバーグ</label> <input value="診断"> </form> 答えは以下のようにしたいです。 Aにもっとも多くチェックされた=あなたは白が好き Bにもっとも多くチェックされた=あなたは緑が好き Cにもっとも多くチェックされた=あなたは青が好き Dにもっとも多くチェックされた=あなたは茶色が好き これはどういった計算で書けばいいのでしょうか? 本やネットを探してみましたが自分ではわかりませんでした。 初歩的な質問かもしれませんが何かヒントをくれると幸いです。

  • ラジオボタンについて

    ラジオボタンのnameにそれぞれ違う名前をつけても 選択の制限を1つだけにできるやり方はありませんか? 例 <input type="hidden" name="a1" value="0151" /> <input name="a" type="radio" value="1" /> <input type="hidden" name="b1" value="0152" /> <input name="b" type="radio" value="1" /> <input type="hidden" name="c1" value="0153" /> <input name="c" type="radio" value="1" /> 私がやりたいことはあるプログラムシステムで使用するため ラジオボタンの上にhiddenでそれぞれ指定してるため このような形で表示できないかと、おもっています。

    • ベストアンサー
    • HTML
  • Javascriptでフォーム項目を変化させたい

    タイトル通りなのですが、Javascriptを利用して『入力するフォーム項目を変化させたい』と考えています。 参考になるページを探そうと思い検索しても、javascriptを勉強しはじめて間もない私が読めるようなページにHITしなくて(検索のワード選定が出来てないかもしれませんが…)困っています。 今回したいことは、 A・B・Cというラジオボタン(チェックボックス)があり、 <input type="radio" name="select" value="patarn_a">A <input type="radio" name="select" value="patarn_b">B <input type="radio" name="select" value="patarn_c">C Aにチェックを入れるとAに対応する入力項目(例えば項目1・項目2・項目3)が記入できるようになり、Bにチェックを入れると、Bに対応する入力項目(例えば項目1・項目3・項目4)が記入できるようになり、Cにチェックを入れると、Cに対応する入力項目(例えば項目2・項目5・項目6)が記入できるようにしたい、のです。 で、送信ボタンを押した時にA・B・Cのどこにチェックが入っているのか、それからその対応項目に入力された値をデータとして送りたいのですが、どうにも方法が分かりません。 もし、お手すきの方がいらっしゃいましたら、どなたかご教授頂けないでしょうか?

  • 他フォームの入力データの引継ぎ

    入力フォームを2つ用意し 第1フォームの入力欄の1部を第2フォームの入力欄のデータとして submitさせたいのですが <INPUT TYPE="radio">と<SELECT>の入力値がうまく引継げません。 下記のようなJavaスクリプトとHTMLなのですが Javaスクリプトで「value」を=にすると 「radio」のほうはundefin、 「SELECT」で複数選択した場合は、一つ目の選択肢のみしか 引継げませんでした。 Javaスクリプトでうまくいく方法がありましたら ご教示ください。 ----Javaスクリプト-------------------------------- function aaa() { document.FROM2.A.value = document.FROM1.A.value; document.FROM2.B.value = document.FROM1.B.value; document.FROM2.C.value = document.FROM1.C.value; document.FROM2.submit(); } ----HTML-------------------------------- <FORM NAME="FROM1" METHOD="POST" ACTION="***"> <SELECT NAME="A" MULTIPLE> <OPTION VALUE="aa">セレクトa <OPTION VALUE="bb">セレクトb <OPTION VALUE="cc">セレクトc <OPTION VALUE="dd">セレクトd </SELECT> <INPUT TYPE="radio" NAME="B" VALUE="" CHECKED>選択なし <INPUT TYPE="radio" NAME="B" VALUE="1" CHECKED>ラジオ1 <INPUT TYPE="radio" NAME="B" VALUE="2" CHECKED>ラジオ2 <INPUT TYPE="text" NAME="C"> <INPUT TYPE="text" NAME="D"> <INPUT TYPE="submit" NAME="OK_BTN" VALUE="OK"> </FORM> <FORM NAME="FROM2" METHOD="POST" ACTION="***"> <INPUT TYPE="hidden" NAME="A"> <INPUT TYPE="hidden" NAME="B"> <INPUT TYPE="hidden" NAME="C"> <INPUT type="button" onClick="JavaScript:aaa();" name="OK_BTN" value="OK"> </FORM>

  • JavaScriptで簡単な計算機を作りたいのですが…

    初めて質問させていただきます。タイトルどおり、以下の様なコードを組んだのですが答えが表示されません。なにぶんJavaScriptを勉強し始めて数日の初心者なもので、どこが悪いのか見当がつきません。レベルの低い質問で申し訳ないのですが、皆さんのお知恵をお貸しください。 <html> <head> <title>JAVAscript</title> <SCRIPT LANGUAGE="JavaScript"> <!-- function func(){ a=parseInt(document.masu.0.value); b=parseInt(document.masu.1.value); c=a+b; document.masu.2.value=c; //--> </SCRIPT> </head> <body> <form name="masu"> <input type="text" name="0" SIZE=10 onkeyup="chkNum(this)"> <input type="text" name="1" SIZE=10 onkeyup="chkNum(this)"> <input type="text" name="2" SIZE=10"onkeyup="chkNum(this)"> <input type="button" value="計算" onclick="func()"> </form> </body> </html>

専門家に質問してみよう