0

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

我有简单的单选按钮:

<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 单选和 .number 单选的值相加?最重要的是,确保您只能从每个值中添加一个值,而不是不管哪组单选按钮都会添加所有值?

4

2 回答 2

2

尝试

var price = 0;

$('.price').click(function() {
    price += parseInt($(this).val(), 10);
}
于 2012-05-02T21:36:05.150 回答
0

我认为我不了解用于显示/选择价格的元素的问题,因此我将添加一些提示,希望它们有用:

要选择给定名称的所有单选按钮(例如“product1”),您可以:

$('input:radio[name="product1"]')

要选择所有选中的 givan name 单选按钮(只能有一个):

$('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
});

您不想更新总和(在事件上),而是每次都需要重新计算。

您可能不需要classesname如果该属性足以识别要发送到服务器的信息,则该属性就足够了。

我希望这些是有帮助的。

于 2012-05-02T22:25:52.367 回答