Jquery在点击时添加值

时间:2012-05-02 21:34:47

标签: jquery

执行点击功能时,我在添加值时遇到问题。

我有简单的单选按钮:

<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中添加值? 除此之外,请确保您只能从每个值中添加一个值,而不是无论添加哪个单选按钮都会添加所有值?

2 个答案:

答案 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}}属性就足够了。

我希望这些有用。