2012-08-27 46 views
0

我有一個MVC3應用程序。我通過複選框onclick方法通過ajax調用控制器。點擊後,我刷新了Telerik網格。在Chrome和Firefox中,這可以正常工作。在IE9中,它可以工作2次,然後停止。這是怎麼回事?下面的代碼:JavaScript onclick工作兩次,然後停止,在IE 9

查看代碼:

<input type="checkbox" name="archived" onclick="javascript:ShowArchivedClicked();" id="archived" value="Archived" style="vertical-align:middle;" @{ if ((bool)Session[Const.ArchivedAttribute]) { <text>checked="checked"</text> } } /><span style="padding: 0 10px 0 0;"> Include archived records</span> 


    function ShowArchivedClicked() { 
     $.ajax({ 
      url: '@Url.Action("SetShowArchived", "Home")', 
      type: "GET", 
      async: false, 
      success: function() { 
       var summaryGrid = $("#SummaryGrid").data("tGrid"); 
       summaryGrid.rebind(); 
      }, 
      data: { showArchivedItems: $("#archived").is(":checked") } 
     }); 
    } 

控制器代碼:

 [HttpGet] 
     public void SetShowArchived(bool showArchivedItems) 
     { 
      ShowArchivedItems = showArchivedItems; 
     } 



     private bool ShowArchivedItems 
     { 
      get 
      { 
       return Session[Const.ArchivedAttribute] == null ? false : (bool)Session[Const.ArchivedAttribute]; 
      } 
      set 
      { 
       Session[Const.ArchivedAttribute] = value; 
      } 
     } 
+0

如果你使用jQuery,你應該不需要使用'的HTML代碼中onclick'。你應該使用jQuery的''click'方法,就像這樣:'$('#archived')。click(function(){.....});' – Spudley

+0

你的意思是兩次點擊是什麼意思?點擊一次,它會調用該操作,然後再點擊一次而不是? – Sean

+0

單擊一次即可檢查該複選框,調用操作並刷新網格。點擊數字2取消選中複選框,調用操作,網格刷新。任何更多的點擊都不會顯示任何內容。該行動不被稱爲。 – birdus

回答

1

加入這行來Ajax調用的伎倆:

cache: false, 
0

onclick

刪除javascript:所有onclick中的JavaScript已經...檢查一下這有助於,如果沒有,發表評論;)

+0

thx @Spudley;) – TheHe

+0

我原本沒有「javascript」那裏,但在網上看到,這可能有助於在IE瀏覽器。似乎沒有什麼區別。 – birdus