2013-12-19 54 views
2

我有以下的jquery代碼,點擊一個複選框,我會顯示一個彈出的值。Jquery複選框更改功能不工作在IE 8

除IE以外,在所有其他瀏覽器中,它都按預期工作。也就是說,在更改時複選框將被選中,彈出窗口將被打開。

但是,在IE8中沒有檢查,但是彈出窗口顯示正確。

代碼:

$('#TAndC').change(function(){ 

    if($('input[name="TAndC"]').is(':checked')) 
    { 
     $('#TandCBox').show(); 
     var termsandcondition = GetEnum().TermsandConditionsPageId; 
     var actionURL = '@Url.Action("ShowTAndC", "Account", new { isFromCheckBox = true })'; 
     $('.popUpForm').load(actionURL); 
     var msgBox = $('#terms').attr('href'); 
     MaskMsgPopUp(msgBox); 
     return false; 
    } 
}); 
+0

使用點擊呢? –

+0

你爲什麼回來假?刪除它並嘗試。並請提供一個jsfiddle或至少相關的HTML標記,什麼類型的元素是#TAndC,複選框,文本框??? –

+0

其實我剛剛在這裏發佈之前編輯過名字。對不起。將嘗試建議的方法。 – TBA

回答

6

如果你的元素是一個checkbox而不是dropdown然後使用click反正。

如果您的選擇器是指dropdown如果您需要支持IE8及更早版本,請使用click

看到爲什麼在下面。

根據MSDN for change/onchange,事件不會被觸發,直到提交更改爲止。

此外,當以編程方式更改該值時,也不會觸發該事件。

報價:

當內容是承諾,而不是同時 值改變這個事件。例如,在文本框中,當用戶正在輸入時,該事件不會被觸發 ,而是當用戶通過保留具有焦點的文本框來提交更改 時。另外,這個事件是 之前執行的onblur指定的代碼,當時控件也是 失去焦點。當選擇對象的選定 選項以編程方式更改時,onchange事件不會觸發。已更改文字 選擇已落實。

要調用此事件,請執行下列操作之一:

  • 選擇使用鼠標或鍵盤導航在選擇對象不同的選項。
  • 改變文本區域中的文本,然後導航出對象。

如果你必須支持IE8及以上,你可能會更好的使用click事件,而不是它獲得,當你鬆開鼠標並選擇您的新選擇的觸發。

+0

謝謝,幫助。 – TBA

+0

非常感謝。這對我工作:) –

1

代替.change使用下面的代碼,並嘗試

$(document).ready(function(){ 

$(document).on('click','#TAndC',click_function){ 

if($('input[name="TAndC"]').is(':checked')) 
{ 
     $('#TandCBox').show(); 
     var termsandcondition = GetEnum().TermsandConditionsPageId; 
     var actionURL = '@Url.Action("ShowTAndC", "Account", new { isFromCheckBox = true })'; 
     $('.popUpForm').load(actionURL); 
     var msgBox = $('#terms').attr('href'); 
     MaskMsgPopUp(msgBox); 
     return false; 
    } 
}); 
}); 
+0

感謝您的幫助 – TBA