jQuery:多个复选框选择和价格确定

时间:2012-12-27 02:13:29

标签: jquery jquery-selectors

我正在努力创建一个“数字早餐/午餐/晚餐清单”,在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美元。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

尝试此操作来实际计算检查了多少项:

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

请注意使用length代替size(),因为后者已被弃用。

答案 1 :(得分: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);
}

答案 2 :(得分:0)

使用length而非size

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

这是一个有效的例子:

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