2011-08-26 62 views
2

我試圖動態計算使用Django/Python和Javascript的訂單總數。動態增加/減少使用單選按鈕的訂單總價格

我正在使用具有預定義值的單選按鈕,這些按鈕是根據哪些產品當前有庫存以及其他項目支持顯示的。

例如:主板,支持RAM的8GB的最大將顯示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")); 


}); 

我一直在努力試圖找出辦法解決此爲兩小時的大部分時間,我很爲難。任何幫助將非常感激。

**編輯**

總結問題..我怎麼只能獲得當前選定的單選按鈕的價格。

回答

2

在這裏你去:

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

awesome .. thanks a ton – Chris

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") 
+0

我怎麼能去有關獲取的值僅是「檢查」的項目?我會假設你會使用類似.attr(「檢查」),但似乎沒有工作。 – Chris

+0

查看我的編輯。 http://api.jquery.com/checked-selector/ –

+0

沒關係。重點是演示選擇器如何工作。我希望它有幫助。 –