我正在努力创建一个“数字早餐/午餐/晚餐清单”,在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美元。
有什么想法吗?
答案 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
将为您提供已检查的“早餐”框。
这是一个有效的例子: