复选框状态的问题

时间:2010-11-23 06:44:06

标签: javascript jquery checkbox

我有一个问题,我似乎无法解决如何解决它。我有两个复选框,它们都具有值5.我只需要在选中复选框时将值5添加到变量,并在取消选中时扣除5。我一直在使用jQuery,但到目前为止,我只设法添加5,当它们都被检查时它增加了10。它现在没有扣除任何东西。由于我有一些我正确检查的单选按钮,我的代码就是这个。

$(":checked").each(function(){
    if ($(this).attr("type") == "checkbox"){
        pricediff += 5;
    }
}

作为每个使用的函数,当它们都被选中时,它会增加10。当然,这不是必需的。当未选中复选框时,它仍然必须扣除5。我不知道该怎么做 - 我有点像jQuery和JavaScript的菜鸟。任何人都可以帮我吗?感谢

P.S。这不是确切的代码,而只是它的主旨。

3 个答案:

答案 0 :(得分:2)

@rahul有一个很好的答案,但这意味着所有复选框的值必须为5.

试试此演示:http://jsfiddle.net/2WJZ4/

HTML:

<input type="checkbox" class="test" value="5" />
<input type="checkbox" class="test" value="7" />
<input type="checkbox" class="test" value="2" />
<input type="checkbox" class="test" value="1" /><br />
<span id="result">0</span>

脚本:

$(function(){
    $("input.test").change(function(){
        var $this = $(this);
        var value = $this.val();
        var checked = $this.is(":checked");
        if (checked) value = -value;
        var $r = $('#result');
        $r.text( (+$r.text()) - value)
    });
});

PS。 @rahul很棒的小提琴页面!!!

答案 1 :(得分:1)

尝试这样的事情 var placediff;
function calc()
{
var n = $("input:checked").length;
pricediff = n*5;
}
$(":checkbox").click(calc);

答案 2 :(得分:1)

示例HTML

<input type="checkbox" class="test" />
<input type="checkbox" class="test" />
<input type="checkbox" class="test" />
<input type="checkbox" class="test" /><br />
<span id="result">0</span>

脚本

$(function(){
    $("input:checkbox.test").click(function(){
        var checked = $("input:checkbox.test:checked").length;
        var checkedValue = checked * 5;

        $("#result").text(checkedValue)
    });
});

查看working demo