Javascript 复选框状态有问题
我有一个问题,我似乎不知道如何解决它。我有两个复选框,它们的值都是5。我只需要在选中复选框时将值5添加到变量中,在未选中复选框时将值5减去。我一直在使用jQuery,但到目前为止,我只添加了5个,当两个都被选中时,它会添加10个。到目前为止,它没有扣减任何东西。由于我有一些单选按钮,我正确地检查,我的代码是这样的Javascript 复选框状态有问题,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有一个问题,我似乎不知道如何解决它。我有两个复选框,它们的值都是5。我只需要在选中复选框时将值5添加到变量中,在未选中复选框时将值5减去。我一直在使用jQuery,但到目前为止,我只添加了5个,当两个都被选中时,它会添加10个。到目前为止,它没有扣减任何东西。由于我有一些单选按钮,我正确地检查,我的代码是这样的 $(":checked").each(function(){ if ($(this).attr("type") == "checkbox"){ pricedif
$(":checked").each(function(){
if ($(this).attr("type") == "checkbox"){
pricediff += 5;
}
}
在使用每个函数时,如果同时选中这两个函数,则会增加10。当然,这不是我们想要的。当复选框未选中时,它仍然必须扣除5。我不知道该怎么做——我对jQuery和JavaScript有点不在行。有人能帮我吗?谢谢
另外,这不是确切的代码,只是它的jist。试试这样的代码
var-placediff代码>
函数计算()
{
var n=$(“输入:选中”).length;
pricediff=n*5;
}
$(“:复选框”)。单击(计算)代码>
试试这样的方法
var-placediff代码>
函数计算()
{
var n=$(“输入:选中”).length;
pricediff=n*5;
}
$(“:复选框”)。单击(计算)代码>
示例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>
请参见示例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>
请参见a@rahul有一个很好的答案,但这意味着所有复选框的值都必须为5
尝试此演示:
HTML:
PS.@rahul真棒的小提琴页面 @rahul有一个很好的答案,但这意味着所有复选框的值都必须为5
尝试此演示:
HTML:
PS.@rahul真棒的小提琴页面 要提高人们帮助你的机会,建议先接受你以前问题的一些答案。要提高人们帮助你的机会,建议先接受你以前问题的一些答案。谢谢。这是最合理的答案。我知道它在这里可以工作,但在我的代码上下文中,它不能像它应该的那样工作,因为有更多的值,它们都必须被添加。我不能一直添加checkedValue。我必须知道什么时候扣除。谢谢你的帮助,你让我走上了正确的道路。事实上,请看下面的例子。谢谢。这是最合理的答案。我知道它在这里可以工作,但在我的代码上下文中,它不能像它应该的那样工作,因为有更多的值,它们都必须被添加。我不能一直添加checkedValue。我必须知道什么时候扣除。不过,谢谢你的帮助,你让我走上了正确的道路。事实上,请看我下面的例子。这是正确的。我在代码的上下文中进行了检查,但它不起作用。但它确实回答了我的确切问题,而且它确实像我要求的那样工作。谢谢,这是对的。我在代码的上下文中进行了检查,但它不起作用。但它确实回答了我的确切问题,而且它确实像我要求的那样工作。非常感谢。
<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)
});
});