• ベストアンサー

チェックした個所の数値を足しこむ

JavaScriptで、画面上に表示している数値を足しこみたいと思っています。 例)イメージ □は、チェックボックス 1 aaa 100 □ 2 bbb 120 □ 3 ccc 120 □ となっているとき、 チェックした個所の数値を足しこみたいと思っています。 たとえば、aaaの行と、cccの行をチェックします。 そうすると、220と表示されるようなものになります。 JavaScriptに長けてらっしゃる方、どうすればよいのか、 よろしくお願いいたします。

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 的を得ていたということでよかったです。 > 一覧部分が、場合によって行数が違う場合 というのは、 1 aaa 100 <input type="checkbox" name="chk1" onClick="calc();" value="100"><br> 2 bbb 120 <input type="checkbox" name="chk2" onClick="calc();" value="120"><br> の部分が1行だったり10行だったりと言うことでしょうか? JavaScript内の処理は、チェックボックスの数が可変になっても 対応しているので、そのまま項目を減らしたり、増やしてもらっても 同じ動作をします。 for ( i = 0; i < document.ans.length; i ++ ) { 上の部分で、document.ans.length回(フォーム内の数)分のループ をするようになっており、 if ( document.ans.elements[i].type=="checkbox" && document.ans.elements[i].checked ) { その中でもチェックボックスであり、チェックされている時に計算を実行します。 そうすることにより、数が増えても、減っても大丈夫です。

takokko
質問者

お礼

ご親切な解説 本当にありがとうございました。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 チェックボックスをチェックした瞬間でしょうか? または、 計算ボタンのようなボタンを選択した時でしょうか? 計算した答えはどこに表示しますか? クリックした瞬間でとりあえず作ってみました。 ========================== <html lang="ja"> <head> <title>チェック計算</title> <script type="text/javascript"> <!-- function calc () { var total = 0; for ( i = 0; i < document.ans.length; i ++ ) { if ( document.ans.elements[i].type=="checkbox" && document.ans.elements[i].checked ) { total += document.ans.elements[i].value-0; } } document.ans.total.value = total; } //--> </script> </head> <body> <form name="ans"> 1 aaa 100 <input type="checkbox" name="chk1" onClick="calc();" value="100"><br> 2 bbb 120 <input type="checkbox" name="chk2" onClick="calc();" value="120"><br> 3 ccc 120 <input type="checkbox" name="chk3" onClick="calc();" value="120"><br> 合計<input type="text" name="total"> </form> </body> </html>

takokko
質問者

お礼

LancerVIIさん。 ありがとうございます。 私が思っていたものをそのまま実現してくださっています。 さらに、質問で、大変申し訳ないのですが、 一覧部分が、場合によって行数が違う場合、 JavaScriptで、その行数を数えて、 足し算をすることはできますでしょうか?