2010-04-12 71 views
0

我有兩個單選按鈕,每個按鈕都有唯一的ID。點擊時,我想增加10美元。當另一個被點擊時,我們回到原來的總價格。我的jQuery看起來是這樣的:IE的jQuery/Javascript問題

function check_ceu() { 
    var price = <%= conference_price %>; 
    if($('#ceu_yes').is(':checked')){ 
      $('#total').val(parseFloat(price) + 10) 
     } 
     else{ 
      $('#total').val(price) 
     }  
} 

我有這樣的功能勢必會的document.ready(頁面刷新),也單選按鈕的onChange處理。

在FF和Chrome中,這工作正常。在IE中,當選中ID爲「ceu_yes」的單選按鈕時,什麼也不會發生,那麼當再次點擊另一個單選按鈕時,會添加10。因此,本質上,IE的複選框功能反轉。下面是我的按鈕代碼:

<input type="radio" name="ceu" id="ceu_yes" value="1" onchange="check_ceu()" /> $10 
<input type="radio" name="ceu" id="ceu_no" value="0" checked="checked" onchange="check_ceu()" /> No, thank you 

對此的任何想法?

回答

1

IE的'change'事件處理程序被搞亂了。預期時不發射。 (http://webbugtrack.blogspot.com/2007/11/bug-193-onchange-does-not-fire-properly.html

如果您更改邏輯以附加到單選按鈕上的「單擊」事件,您將獲得所需的效果。

NB。很好,點擊事件時,點擊事件仍會正確觸發,並使用鍵盤上的空格鍵進行操作,因此不會丟失任何功能。

+0

謝謝!必須愛IE ... – Shadyn 2010-04-12 15:07:48