プロが教える店舗&オフィスのセキュリティ対策術

こんにちわ。
表記についてですが、javascriptによるcheckboxのvalue値を算出させようと悪戦苦闘しております・・・。
皆様のお知恵を拝借できればと思います。
至らない部分が多々あると思いますが下記に現在のソースを貼り付けますので、色々とご指摘いただければ幸いです。
(リアルタイム表示のためprototypeを使用しています。)

<head><script src="prototype.js" type="text/javascript"></script>
<script language="javascript">
function mprice(){
chn = 6;
ttl = 0;
for(i=0; i<chn; i++) {
if(document.step2.elements[i].checked==true) {
var pttl = ttl + eval(document.step2.elements[i].value);
} else if(typeof(pttl) == "undefined") pttl = 0;
}
document.getElementById('pttlr').innerHTML = pttl + "円"
}
</script>
</head>
<body>
<form name="step2">
<input type="checkbox" value="105" id="food" onClick="mprice()">コーラ<br />
<input type="checkbox" value="315" id="food" onClick="mprice()">肉<br />
<input type="checkbox" value="1050" id="book" onClick="mprice()">参考書<br />
<input type="checkbox" value="210" id="sweet" onClick="mprice()">飴<br />
<input type="checkbox" value="525" id="book" onClick="mprice()">マンガ<br />
<input type="checkbox" value="3150" id="music" onClick="mprice()">CD<br />
</form>

<div id="pttlr">

A 回答 (2件)

チェックされた項目の合計を算出したいのでしょうか?



function mprice(){
chn = 6;
ttl = 0;
for(i=0; i<chn; i++) {
if(document.step2.elements[i].checked==true) {
ttl += eval(document.step2.elements[i].value);
}
}
document.getElementById('pttlr').innerHTML = ttl + "円"
}
では?
    • good
    • 0
この回答へのお礼

ご丁寧なご回答をいただきありがとうございます。
なるほど。そうですね。
こうして色々な方に見ていただけるとどんどん省略化されていくのは面白いですね。
ありがとうございます。勉強になります。

お礼日時:2007/04/19 12:43

まず、本題とは関係ありませんが、このスクリプトだけなのであれば、"prototype.js"は必要ありません。



本題です
合計のための変数に、ttlを用意してあるのに、
pttlをサマリー中で使っているのはなぜですか?

pttlとttlが混在しており、このままでは、チェックされた商品の最後の価格のみとなります。

pttlを使わずに、pttl -> ttlへ変更したら、
ちゃんと動くようですよ。
    • good
    • 0
この回答へのお礼

早速のご丁寧なご回答を頂きありがとうございます。
なるほど。言われてみれば・・・。
まだまだ勉強が足りませんね。ありがとうございます。
HTML中に埋め込み、divタグで表示させたいのですが、この場合でもprototypeは必要なさそうでしょうか?

お礼日時:2007/04/19 12:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!