2012-01-04 6 views
0

asp.net mvc3アプリケーションにはフォームがあります。フォームはjquery投稿で投稿されます。以下は関連コードです。フォームは、AJAXを介してロードされると、私は毎回フォームがAJAX経由で取得されたイベントをクリックしてバインドしたくなかったので、ajaxポストトリガ2回

   $(this).find('form').live('submit', function() { 
        var request = $.post($(this).attr('action'), $(this).serialize(), function (data) { 
         //do something  
        }); 
        request.fail(function (jqXHR, textStatus) { 
         //do something  
        }); 
        return false; 
       }); 

(生きる)が使用されています。

問題を提出すると、フォームが2回転記されます。クロムとIE9でテストされ、両方で発生します。

  • ページに他のフォームが含まれていても1つのフォームしかないかどうかを確認しました。

  • 私は404(すなわち画像)を引き起こすページ上の任意のリソースがありません

  • (放火犯がこれを引き起こす可能性があります)、両方のブラウザですべての拡張機能を無効に。

この問題の原因は他に何かありますか?

答えて

0

HTMLマークアップなしではわかりにくいですが、2つのネストされたフォームがありますか?

するevent.stopPropagationかでpreventDefaultで試してみてください:

$(this).find('form').live('submit', function (e) { 
     e.stopPropagation(); 
     e.preventDefault(); 
     var request = $.post($(this).attr('action'), $(this).serialize(), function (data) { 
        }); 
     request.fail(function (jqXHR, textStatus) { 
         //do something  
     }); 
     return false; 
}); 
+0

kazさん、私はstopPropagationとpreventDefaultを運行なしで試しました – rovsen

+0

約:$(this).find( 'form')。unbind( 'submit')。live( 'submit'、(...) – kaz

1

私はあなたが二度のフォーム、または送信ボタンビニングしている疑いがあります。視覚イベント(私のものではない)と呼ばれるbookmarkletがあります。この場合、小切手で実行してください。 kazが実際のhtmlなしで言ったように多くはできません

+1

それはバインドされていますあなたが言ったように2回。 – rovsen

0

これは私のためにそれをしました。私はAjaxフォームを持っていました。私が仕事をしなければならないのは、

$('#docForm').ajaxForm({ 

    ...Do Some Mildly Cool Stuff Code... 

}).submit(function (e) { 
    return false; 
}); //Just add the submit to the end. 

でした。

希望すると助かります!

関連する問題