jQuery中的价格模拟器-将值添加到两个变量中
Price simulator in jQuery - Adding values into two vars
我在jQuery中有一个实时价格模拟器,需要检查是否有任何记录有"粘附价格",以添加最终值,但当我尝试使用下面的注释数据(var parent)时,它总是添加值,但如果复选框未选中,则不会删除。
这个想法是,如果ID不是空的,那么它的值就是粘合价格,它应该将其添加到粘合变量中。并且必须将"rel"值添加到"total"变量中。
问题是,我不得不使用"rel"而不是value,因为该值将被保存到mysql表中以供参考。我用"id"表示附着力值。
HTML复选框:
<input type="checkbox" rel="20" id="" name="opc[]" value="1">
<input type="checkbox" rel="10" id="" name="opc[]" value="2">
<input type="checkbox" rel="30" id="150" name="opc[]" value="3">
jQuery:
$(document).ready(function(){
var total = 0;
var adhesion = 0;
function calcTotal(){
$("input:checked").each(function(){
var value = $(this).attr("rel");
/*var parent = $(this).id;
if(parent.value != ""){
adhesion += parseFloat(parent);
}*/
total += parseFloat(value);
});
}
$("input:checkbox").click(function(){
if(adhesion != 0){
total = adhesion;
}else{
total = 0;
}
calcTotal();
$(".monthly_val").html("$ "+total.toFixed(2));
});
});
添加了带有更改的jsbin
我对您的代码做了一些尝试,当我做对了,这个函数应该按照您的意愿运行:
function calcTotal(){
var total = 0;
var adh = 0;
$("input:checked").each(function(){
var value = $(this).data("price");
var parent = $(this).data("adhesion");
if(parent !== 0){
adh += parseFloat(parent);
}
total += parseFloat(value);
});
return total+adh;
}
$("input:checkbox").click(function(){
var endprice = calcTotal();
$(".v_mensal").html("R$ "+endprice.toFixed(2));
});
我给函数添加了一个返回值,并稍微切换了变量的范围。我希望这对你有帮助。
链接到更新的jsbin
相关文章:
- 在HTML包围的javascript中添加两个变量
- 填写表单后替换两个变量
- 为两个ID设置一个变量的正确语法
- 用于交换两个变量的 JavaScript 函数
- 使用一个表达式将两个变量分配给相同的值
- 如何添加两个变量而不使其在javascript中连接
- 通过变量在两个数字之间切换
- 有可能让两个变量指向同一个对象吗?(javascript)
- 在两个浏览器选项卡之间共享变量范围
- 带有两个变量函数的Ajax提交表单
- 将两个变量的值加在一个变量中
- JavaScript:检查变量是否等于两个或多个值之一的简单方法
- 如何使用javascript获取两个变量的最高值
- 在同一页上的两个脚本中使用全局变量
- 在两个导出的函数中使用变量
- 如何从字符串中获取两个变量
- 删除两个函数使用的全局变量
- 测试两个变量是否包含一些数据 JavaScript
- 定义两个具有相同参数的变量
- 将两个变量从php发送到javascript