我一直在混淆这个......我有三个形式领域:个人,夫妻,总数。这是会议注册的成本计算器。
一个人(#individuals)的费用为50美元。一对夫妇(#couples)售价75美元。如果总人数超过3人,则可享受折扣优惠。每个人在折扣下花费40美元。因此,我们计算总人数,如果有3个或更多人,则为每个人申请40美元的新价格。在计算#individuals和#couples字段之间的总人数之前,#couples的值需要乘以2,因为每对夫妇有两个人。新的“折扣”#individuals价格为40美元,新的#couple价格为80美元。
我的问题只是“我哪里出错?”。非常感谢任何见解。
我当前的代码,在#total字段中输出的数字不正确:
$('#individuals').change(compute);
$('#couples').change(compute);
function compute() {
var ind = $('#individuals').val(); // number of individuals
var coup = $('#couples').val()*2; // number of people in a couple (2)
var people = ind + coup; // add up the total people
if (people >= 3) {
var a = $('#individuals').val()*40; // discount price of an individual
var b = $('#couples').val()*80; // discount price of couple
}
else {
var a = $('#individuals').val()*50; // normal price of an individual
var b = $('#couples').val()*75; // normal price of couple
}
var total = a + b;
$('#total').val(total);
}
答案 0 :(得分:1)
不要重复自己 - 只为每个字段拨打一次$('#element').val()
使用parseInt(val, 10)
确保您的号码是数字而不是字符串。您的ind
字段当前是一个字符串,当您将其“连接”到coup
时会出错:
e.g:
function compute() {
var ind = parseInt($('#individuals').val(), 10); // number of individuals
var coup = parseInt($('#couples').val(), 10); // number of couples
var people = ind + 2 * coup; // add up the total people
var total;
if (people >= 3) {
total = 40 * people;
} else {
total = 50 * ind + 75 * coup;
}
$('#total').val(total);
}
$('#individuals,#couples').on('change', compute);