使用单选按钮以动态增加/减少总价格

时间:2011-08-26 17:18:43

标签: javascript jquery python django forms

我正在尝试使用Django / Python和Javascript动态计算订单总数。

我正在使用带有预定义值的单选按钮,这些按钮根据当前库存的产品和其他项目支持显示。

示例:支持最大8GB RAM的主板将显示4个单选按钮,2gb,4gb,6gb和8gb

这是我输入字段的模板到目前为止的样子:

{% for ram in orderData.ram %}

<div class="field"><input id="ram{{forloop.counter}}" name="ram" type="radio" class="ram" value="{{ ram.id }}" price="{{ ram.price }}"{% ifequal ram.default 1 %} checked {% endifequal %}/><label>{{ ram.title }}</label> {% ifnotequal ram.price 0 %}<span class="price">add ${{ ram.price }}</span>{% endifnotequal %}</div>

{% endfor %}

我原本计划使用“价格”属性来存储价格,但截至目前,每当我选择不同的单选按钮时,它只会显示第一个输入的价格。有没有办法解决?我尝试添加一个唯一的ID字段,但它仍然只抓取第一个无线电值......这使得它几乎无用。

的javascript / jquery的:

$("input").change(function(){

var id = $(".ram").attr("id");
alert(id);
alert($("#"+id).attr("price"));


});

我一直在努力寻找解决这个问题的方法,在两个小时的大部分时间里,我很难过。任何帮助将不胜感激。

**编辑**

总结一下这个问题..我怎样才能获得当前所选单选按钮的价格。

3 个答案:

答案 0 :(得分:2)

var id = $(".ram")是包含此类名称的所有项目的数组。

这将循环遍历所有。

$(".ram").each(function() {
     alert($(this).attr("price"))
})

您可以使用以下索引单独解决这些问题:

for(var x=0;x<$(".ram").length;x++) {
    alert($(".ram").eq(x))
}

选中的单选按钮将是:

$('.ram:checked').attr("price")

答案 1 :(得分:2)

你走了:

$(function() {
    $('input[name="ram"]').change(function() {
        var id = $(this).val(); // currently selected value
        var price = $('input[name="ram"][value="'+id+'"]').attr('price');
    });
});

答案 2 :(得分:0)

您需要检查将显示所选属性的属性.. .attr(“checked”)。

在别处看到这个讨论......

How to check whether a checkbox is checked in jQuery?