我正在尝试使用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"));
});
我一直在努力寻找解决这个问题的方法,在两个小时的大部分时间里,我很难过。任何帮助将不胜感激。
**编辑**
总结一下这个问题..我怎样才能获得当前所选单选按钮的价格。
答案 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”)。
在别处看到这个讨论......