我在jQuery中有一个实时价格模拟器,并且需要检查是否有任何记录具有'附加价格',以添加最终值,但是当我尝试使用评论时下面的数据(var parent)它总是添加值,但如果未选中复选框,则不会删除。
这个想法是,如果ID不是空的,那么它的值是粘附价格,它应该将它添加到粘附变量中。并且'rel'值必须添加到'total'var。
中问题是我必须使用'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更改。
答案 0 :(得分:1)
我用你的代码玩了一下,当我说对了,这个功能应该按照你的意愿行事:
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