执行点击功能时,我在添加值时遇到问题。
我有简单的单选按钮:
<input type="radio" name="product1" class="price" value="4" /> 4
<input type="radio" name="product2" class="price" value="6" /> 6
我想在执行点击时添加值。显然我可以获得点击价值,但我不知道如何添加它们。
$('.price').click(function() {
price = $(this).val();
}
好的,其他问题。
如果我们有两个单独的点击功能,如下所示:
<input type="radio" name="product1" class="price" value="4" /> 4
<input type="radio" name="product2" class="price" value="6" /> 6
<input type="radio" name="product1" class="number" value="3" /> 3
<input type="radio" name="product2" class="number" value="7" /> 7
和
$('.price').click(function() {
price = $(this).val();
}
$('.number').click(function() {
number = $(this).val();
}
如何从.price radio和.number radio中添加值? 除此之外,请确保您只能从每个值中添加一个值,而不是无论添加哪个单选按钮都会添加所有值?
答案 0 :(得分:2)
尝试
var price = 0;
$('.price').click(function() {
price += parseInt($(this).val(), 10);
}
答案 1 :(得分:0)
我不认为我在用于显示/选择价格的元素方面理解这个问题,所以我只想添加一些提示,希望它们有用:
要选择给定名称的所有单选按钮(例如“product1”),请执行以下操作:
$('input:radio[name="product1"]')
要选择所有已选中的givan名称的单选按钮(只能有一个):
$('input:radio[name="product1"]:checked')
选择所有选中的单选按钮,无论名称如何:
$('input:radio:checked')
在jQuery输入元素集合中汇总所有值(可解析为数字)的函数:
function sumValues($inputs) {
var sum = 0;
$inputs.each(function () { sum += +this.value; });
return sum;
};
您的处理程序应该看起来像这样(插入适当的选择器):
$(<whatever-triggers-recalc>).click(function() {
// change selector to the one that selects the radios you need summed
var sum = sumValues( $('input:radio[name="product1"]') );
// here, you have your sum
});
您不希望更新总和(在某个事件中),而是每次都需要重新计算。
您可能不需要classes
,如果name
属性足以识别要发送到服务器的信息,则{{1}}属性就足够了。
我希望这些有用。