2012-01-05 7 views
0

人。私は午前中に問題の答えを探していましたが、何の成功もありませんでした。ここでASP.NET MVC 3 Ajax.BeginFormの問題ChromeでjQueryを使用して送信する

が問題だ - >私はjqueryのを使用して、チェックボックスにより提出されたAjax.BeginFormを持っている:

<% 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を返し、2回目はfalseを返します。

私は邪魔にならないAjaxやものについて多くの記事を読んできましたが、どれも私のために働いていませんでした。

面白い部分は、私が使用している場合、入力型提出ということで、それは魔法のように動作...

は、誰もが、私はこの問題を解決するために何ができるかのいずれかの手掛かりを持っていますか?

ありがとうございました!

答えて

1

これを試してみてください:チェックボックスののonchange属性を削除、とjQueryを通してそれを実行します。このdoesntの仕事は、送信ボタンを隠さ作成してみてください、とチェックボックスは変更にそれをクリックします

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

場合。

+0

これはもっとも優れた解決策ではありませんが、「プランB」が機能しました!私は隠された送信ボタンを作った!答えをありがとう、私は回避策で考えるのを忘れて、正しい方法でアヤックスの仕事をすることに非常に心配していた! – thiagoprzy

関連する問題