1

現在、さまざまなアイテムの一連のチェックボックスがあり、選択すると合計が変更されます。JavaScript コードは以下のとおりです。

<script type="text/javascript">
function checkTotal() {
document.listForm.total.value = '';
var sum = 0.00;
for (i=0;i<document.listForm.choice.length;i++) {
if (document.listForm.choice[i].checked) {
sum = sum + parseFloat(document.listForm.choice[i].value);
}
}
document.listForm.total.value = sum.toFixed(2);
}

</script>

このコードは正常に動作しますが、すべてのチェックボックスに同じ入力名 'choice' があります。これを変更して、choice1、choice2、choice3 など、各入力名が異なるようにする必要があります。「choice」と呼ばれるものを追加するだけでなく、異なる名前のチェックボックスをすべて追加するように JavaScript を変更するにはどうすればよいですか。

HTML と CSS の知識は十分ですが、JavaScript は非常に基本的なものです。ありがとう。

4

2 に答える 2

1

次のようなことができます:

function checkTotal() {
    document.listForm.total.value = '';
    var sum = 0.00;
    var i, inputs, input;

    inputs = document.getElementsByTagName('input')

    for (i=0;i<inputs.length;i++) {
        input = inputs[i]
        if (input.type === 'checkbox' && input.name.substr(0, 6) === 'choice') {
            sum = sum + parseFloat(input.value);
        }
    }
    document.listForm.total.value = sum.toFixed(2);
}

これはテストされていませんが、コードはすべての入力要素について DOM を調べる必要があります。次に、それらを繰り返し処理し、「choice」で始まる名前を持つチェックボックスであるチェックボックスをチェックします。次に、チェックボックスの値を合計に追加します。

jQuery のようなライブラリを使用すると、この種の作業がはるかに簡単になります。

于 2013-10-19T13:21:05.243 に答える
0

jQuery を使用して、以下のコード フラグメントはページにすべてのチェックボックスの値を追加します。私はこれをテストしていませんが、動作するはずです。

$("input[type=checkbox]").each(function(){
   if(this.checked){
     sum = sum+this.val();
   }
});
于 2013-10-19T13:12:00.810 に答える