我正在使用此JavaScript代码:
<script>
function add(total, this_chk_bx)
{
var thetotal = form2.thetotal.value;
if(this_chk_bx.checked==true)
{
//add if its checked
form2.thetotal.value = Number(thetotal)+Number(total);
}
else
{
//subtract if its unchecked
form2.thetotal.value = thetotal-total;
}
}
</script>
然后我有从数据库中的表中选择的PHP / HTML代码,并在数据库中添加带有值作为浮点字段的复选框。
我正在尝试做的是,当勾选复选框时,它会向上添加值并在文本字段中显示它们,然后在取消选中它时,它会从字段中删除该值。
出于某种原因,在减去时,它显示的是奇数而且不正确。
我在这里创造了一个小提琴,所以你也可以看到HMTL:http://jsfiddle.net/j08691/kHxmG/4/
关于如何才能让它正常工作的任何想法?
答案 0 :(得分:0)
function add(total, this_chk_bx)
{
var thetotal = form2.thetotal.value;
if(this_chk_bx.checked==true)
{
//add if its checked
form2.thetotal.value = ((thetotal*100)+(total*100))/100;
}
else
{
//subtract if its unchecked
form2.thetotal.value = ((thetotal*100)-(total*100))/100;
}
}
答案 1 :(得分:0)
我建议你阅读这篇文章:
编写一个函数来纠正你的数字:
function correctNumber(number) {
return (parseFloat(number.toPrecision(12)));
}
并将您的最终号码传递给此功能:
function add(total, this_chk_bx) {
var thetotal = (form2.thetotal.value * 1);
var total = total * 1;
if (this_chk_bx.checked == true) {
//add if its checked
form2.thetotal.value = correctNumber(thetotal + total);
} else {
//subtract if its unchecked
form2.thetotal.value = correctNumber(thetotal - total);
}
}
请勿忘记查看jsFiddle Demo。