2011-07-07 96 views
0

我想寫一個jQuery函數,當單擊單選按鈕時更改小計。將會有3個以上的單選按鈕 - 每個按鈕都有一個不同的價格值,可以添加到現有的小計中。jQuery的問題:檢查兄弟姐妹

僅限於希望在未選擇現有單選按鈕(此組單選按鈕 - 具有相同的name屬性)時更新小計。這是我目前有:

HTML:

<input type="radio" value="45" name="timescale" onclick="changePrice(this)"> 

的jQuery:

function changePrice(t){ 
    v = parseInt($(t).val()); 
    s = $("#subtotal");  
    x = parseInt(s.text()); 
    if($(t).siblings("input").is(":checked")){ 
    s.text(x); 
    } else { 
    s.text(x + v); 
    } 
} 

我想如果要是被選中的單選按鈕的兄弟姐妹來檢查語句。如果它們是:只用當前值替換小計s.html()。如果它們不是:用更新值(這是當前值+單選按鈕的值)替換s.html()。但目前每次點擊都會更新小計 - 即使其他單選按鈕已被選中。我哪裏錯了?

+0

你可以發佈包含整套單選按鈕的html嗎?或者你現在只與一個人一起工作? – user122211

回答

1

編輯 的問題是,change事件的那一刻,已經存在的一個檢查無線電(你不知道以前的狀態)。您可以將此狀態存儲在輔助變量中,如下所示:

var $checked; //This is the aux var that saves previous state 
$(document).ready(function(){ 
    $checked = $(":radio[name='timescale']:checked"); 
}); 

function changePrice(t){ 
    v = parseInt($(t).val()); 
    s = $("#subtotal");  
    x = parseInt(s.text()); 
    if($checked.size() > 0){ 
    s.text(x); 
    } else { 
    s.text(x + v); 
    } 
    $checked = $(this); 
} 

希望這有助於您。歡呼聲

+0

aux var是什麼解決了所有問題,謝謝! – hohner