1

我正在尝试创建一个“数字早餐/午餐/晚餐列表”,在两周的时间里,父母可以选择他们的孩子是否需要吃早餐、午餐和/或晚餐。这些值将与每餐的不同费率相乘以确定发票金额。父级单击返回总值的提交按钮。这是我到目前为止所得到的:

网络表格:

<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
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 回答
0

length而不用size

$('input:checkbox[name="breakfast"]:checked').length将为您提供选中的“早餐”框的数量。

这是一个工作示例:

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

于 2012-12-27T02:43:47.257 回答