1

私は「デジタル朝食/昼食/夕食リスト」を作成しようとしています.2週間のスペースで、両親は子供が朝食、昼食、夕食を食べる必要があるかどうかを選択できます. これらの値は、請求金額を決定するために、食事ごとに異なるレートに対して乗算されます。親が送信ボタンをクリックすると、合計値が返されます。ここに私がこれまでに持っているものがあります:

ウェブフォーム:

<input type="checkbox" name="breakfast">
<input type="checkbox" name="lunch">
<input type="checkbox" name="dinner">

14 日あり、これがそれぞれ繰り返されます。したがって、合計で 42 個のチェックボックスがあります。

jQuery:

var numBreakfast = $("input:checkbox[name='breakfast']").size();
var numLunch = $("input:checkbox[name='lunch']").size();
var numDinner = $("input:checkbox[name='dinner']").size();

var totalPrice = numBreakfast * priceBreakfast + numLunch * priceLunch + numDinner * priceDinner

これは正しいと思いますが、合計を呼び出すと、$0.00 が返され続けます。

何か案は?

4

3 に答える 3

1

チェックされたアイテムの数を実際にカウントするには、これを試してください。

var numBreakfast = $('input:checkbox[name=breakfast]:checked').length;
// same with all the others

後者は推奨されていないため、length代わりにの使用に注意してください。size()

于 2012-12-27T02:33:20.697 に答える
0

を使用し、使用lengthしないでくださいsize

$('input:checkbox[name="breakfast"]:checked').lengthチェックされた「朝食」ボックスの数が表示されます。

これが実際の例です:

http://jsfiddle.net/senoramor/5qymM/1/

于 2012-12-27T02:43:47.257 に答える
0
function calculate(){
var numBreakfast = $("input:checkbox[name='breakfast']"),numBreakfastCount=0
numLunch = $("input:checkbox[name='lunch']"), numLunchCount=0;
numDinner = $("input:checkbox[name='dinner']"),numDinnerCount=0,
priceDinner=2.00,priceLunch=3.00,priceBreakfast=5.00;

for(i=0;i<numBreakfast.length;i++){
    if(numBreakfast[i].checked == true){
        numBreakfastCount++
    }
}

for(i=0;i<numLunch.length;i++){
    if(numLunch[i].checked == true){
        numLunchCount++
    }
}

for(i=0;i<numDinner.length;i++){
    if(numDinner[i].checked == true){
        numDinnerCount++
    }
}

var totalPrice = (numBreakfastCount * priceBreakfast) + (numLunchCount * priceLunch) + (numDinnerCount * priceDinner);
console.log(totalPrice);
}
于 2012-12-27T02:28:50.207 に答える