Javascript在点击时添加复选框值

时间:2013-05-10 18:54:31

标签: php javascript html

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

关于如何才能让它正常工作的任何想法?

2 个答案:

答案 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)

***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