2012-01-05 73 views
0

guys。整個上午我一直在爲我的問題尋找答案,但我沒有取得任何成功。ASP.NET MVC 3 Ajax.BeginForm使用jQuery的問題在Chrome上提交

這裏的問題 - >我是通過一個複選框提交了Ajax.BeginForm,使用jQuery:

<% using (Ajax.BeginForm("Edit", "Products", 
                 new AjaxOptions 
                 { 
                  HttpMethod = "POST", 
                  LoadingElementId = "divLoading", 
                  UpdateTargetId = "divProducts" 
                 })) 
     {%> 
     <%: Html.HiddenFor(mod => Model.ProductId) %> 
    <%:Html.CheckBoxFor(mod => Model.ShowInactiveProducts, 
               new 
                { 
                 onchange = 
                "jQuery('#ShowInactiveProducts').closest('form').submit(); return false;" 
                })%> <%:Products_Resource.ShowInactive%> 
    <% 
     }%> 

此代碼工作在Firefox罰款,但在Chrome它觸發兩次提交,其中第一次Request.IsAjaxRequest()返回true,第二次返回false。

我讀過很多關於unobstrusive Ajax和東西的文章,但他們都沒有爲我工作。

有趣的是,當我使用的輸入型提交,它就像一個魅力...

沒有人有我有什麼可以做任何線索來解決這個?

謝謝!

回答

1

試試這個:去掉複選框的onchange屬性,並做到這一點通過jQuery的:

<script> 
    $("#mycheckbox").change(function(){ 
    "jQuery('#ShowInactiveProducts').closest('form').submit(); 
    }); 
</script> 

如果不工作,嘗試創建一個隱藏的提交按鈕,使複選框,單擊它的變化。

+0

儘管這不是最漂亮的解決方案,但「B計劃」卻奏效!我做了一個隱藏的提交按鈕!感謝您的回答,我非常擔心以正確的方式使ajax工作,我忘了在解決方法中考慮! – thiagoprzy 2012-01-05 14:14:56