人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptでチェックボックスをチェックしただけで計算したい。

以下が今のコード
ーーーーーーーーー
<script type="text/javascript">
<!--
function tes() {
//変数に代入
d = document.Tform.elements;
//初期化
checkvalue = '';
for (i = 0; i < d.length; i++ ) {
//チェックボックスがONの時はその値を設定する
if (d[i].checked == true) {
checkvalue += d[i].value;
}
}
//設定結果の表示
document.getElementById("re").innerHTML = checkvalue;
}
//-->
</script>
<form name="Tform">
<table border="1">
<tr><td>menu</td><td>minu</td></tr>
<tr><td><input type="checkbox" value="60" onclick="tes()">cut</td><td>60</td></tr>
<tr><td><input type="checkbox" value="30" onclick="tes()">color</td><td>30</td></tr>
<tr><td>total</td><td id="re">結果</td></tr>
</table>
</form>
ーーーーーーーーー
これはhtmlに埋込んで書いてます。
-----------------
チェックボタンを押すとその都度時間計算をしてくれるスクリプトを書きたいが
6030の用に文字列のならびになる、計算するように書き換えたい、
当方javascript初心者で難儀しております、アドバイスおねがいします。

●質問者: nex-yk
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
ベストアンサー

二ヶ所、書き換えました。

function tes() {
 //変数に代入
 d = document.Tform.elements;
 //初期化
 checkvalue = 0; /* ★ここ */
 for (i = 0; i < d.length; i++ ) {
 //チェックボックスがONの時はその値を設定する
 if (d[i].checked == true) {
 checkvalue += parseInt(d[i].value); /* ★ここ */
 }
 }
 //設定結果の表示
 document.getElementById("re").innerHTML = checkvalue;
}

  1. 変数 checkvalue を、空文字列ではなく、ゼロで初期化する
  2. チェックボックスの value 属性は、文字型なので、parseInt を使って数値型にする
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ