0

我正在使用这个 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/

关于我可以做些什么来让它正常工作的任何想法?

4

2 回答 2

0

***jsFiddle Demo***

我建议你阅读这篇文章:

编写一个函数来为您更正数字:

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

于 2013-05-10T19:33:37.333 回答
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;
    }
}
于 2013-05-10T19:09:34.647 回答