2012-01-20 49 views
2

UPDATE增加總檢查單選按鈕

,如果你嘗試此鏈接http://jsfiddle.net/Matt_KP/BwmzQ/小提琴的形式,選擇右上角£40單選按鈕,然後查看訂單總在它說£40的底部。然後,如果您選擇75英鎊,訂單總額將變爲75英鎊,但如果您再返回並再次查看40英鎊,則訂單總額爲75英鎊+ 40英鎊,而對於已檢查的單選按鈕,其價格應爲40英鎊。

更新結束

我與其中如果他人僅選擇某些單選按鈕,可以檢查單選按鈕的截面。所以說,如果用戶選擇了一個單選按鈕,但隨後又選擇了另一個單選按鈕,則第一個單選按鈕將被取消選中,因爲它們不能同時選中。

此外,我在單選按鈕data-price中使用了一個自定義屬性,它包含每個單選按鈕的值,這些按鈕需要添加到其他按鈕中。

問題是,當用戶選擇一個單選按鈕總顯示正常,但如果用戶選擇另一個單選按鈕,不能選擇前一個單選按鈕,它將總數加到前一個單選按鈕上,只添加選中的單選按鈕。這有點像緩存我認爲的總數。

這是我使用的總選中的單選按鈕是什麼:

<script type="text/javascript"> 
jQuery(document).ready(function($){ 
$('input:radio').change(function(){ 
var total = 0.0; 
$('input:radio:checked').each(function(){ 
     total += parseFloat($(this).data('price')); 
}); 
$('#total').val(total.toFixed(2)); 
}); 

}) 
</script> 
+2

「這就是我正在使用的選擇其他人時取消選擇某些單選按鈕」 - 爲什麼當您嘗試修改默認情況下單選按鈕時的行爲? – Johan

+0

@Johan Iv'e沒有發佈單選按鈕,但是我設置它的方式,它不能使用單選按鈕的默認行爲。 – Matt

+0

爲什麼不使用複選框? – Alex

回答

5

我想你的大部分問題都可以用一些新的HTML被規避....

瘋狂 jQuery代碼限制輸入是荒謬的..你有名稱,價值和你的數據價格屬性......拆分每個無線電設置項目似乎有點矯枉過正給我..

這是一個有限的例子(根據我們在聊天中的討論)。

http://jsfiddle.net/CZpnD/ < - 這裏是你可以工作的例子..

要看的主要是我如何使用相同的廣播名稱爲每個「塊」的選項,以及如何循環所有選項時,單個選項更改爲獲得新的總數(不是最有效的但有用)。

和愛皮特使用標籤!

+0

工作正常,但只是一個變化,你應該能夠從'1年所有塊&單位'和一個從'年2所有塊&單位'在同時,如果你從'給我所有,並保存一些monehhhh!'中選擇一個,你只能從這些行中選擇一個。' – Matt

+0

好吧,那麼你會想恢復命名的形式輸入不同..作爲一個問題個人意見,你應該重新考慮如果你真的希望它能像那樣發揮功能,這張表格看起來如何 - 這很讓人困惑。 – rlemon

4

HTML是建立做到這一點。

<form name="myform"> 
    <input type="radio" name="foo" value="10" /> foo 
    <input type="radio" name="foo" value="30" /> bar 
</form> 

如果您給單選按鈕相同的名稱,那麼只能選擇一個。

而且更多的時候你得到的無線電元件.value屬性表示當前選中的單選按鈕的值

var myform = document.forms.myform; 

var radio = myform.elements.foo; 
var price = radio.value; 

注意radio是一個RadioNodeList僅由elements[name]

Example

返回

但事實證明,瀏覽器對RadioNodeList的支持是非常重要的,所以你必須手動完成。或者使用RadioNodeList polyfill

for (var i = 0, len = radio.length; i < len; i++) { 
    var el = radio[i]; 
    if (el.checked) { 
     var price = el.value; 
     break; 
    } 
} 
+0

請看這個http://jsfiddle.net/Matt_KP/BwmzQ/。我不能使用單選按鈕的標準方式。底部的總箱子是錯誤的。 – Matt

+0

如果您嘗試小提琴上的表格並選擇右上角的£40單選按鈕,那麼請在底部查看總額爲40英鎊的訂單總額。然後,如果您選擇75英鎊,訂單總額將變爲75英鎊,但如果您再返回並再次查看40英鎊,則訂單總額爲75英鎊+ 40英鎊,而對於已檢查的單選按鈕,其價格應爲40英鎊。 – Matt

+1

@Matt是的,我看着你的代碼,然後嘔吐,然後拒絕再看一遍。如果你有明智的代碼,這個問題就不存在了。 – Raynos