2012-06-10 10 views
5

jquery mobileでMVC4を使用するとAjax.BeginFormを使用して作成されたフォームがフォームを生成する理由を誰かが知っていますか?コントローラーに2回提出されました。MVC 4、Jquery Mobile、Ajax.BeginFormによりフォームが2回提出される

私はもともと私は同じJSファイルが二度含まれているされている可能性があり、提出フォームにトリガーされるかもしれないことを束ねるJSを使用しておりますので、しかしケースはないthatsのことを、JSファイルの私のリストがあると思っていた:

jquery-1.6.4.js 
jquery-ui.1.8.11.js 
jquery.mobile-1.1.0.js 
jquery.unobtrusive-ajax.js 
jquery.validate.js 
knockout-2.0.0.js 
MicrosoftAjax.js 
MicrosoftMvcAjax.js 
MicrosoftMvcValidation.js 
Modernizr.js 

プロジェクト内でAjaxはすべての機能が完全に有効になっています。つまり、私はmobileinitで何かを無効にしていません。

すべてのフォームで文字通り起こるため、フォームコードは一度も投稿していません。フィールドが1つのフォームと送信ボタンによって送信が2回発生しますが、Ajax.BeginFormが使用されている場所のみです。

Html.BeginFormは、これらの問題のいずれも示しません。私は今、数日間、この上で立ち往生してきた

ので、任意の助けを大幅にデフォルトのハイジャックにより任意のフォーム送信を

+2

'Microsoft * .js'ファイルを参照せずに試してみてください。 MVC3以来、彼らは邪魔にならない検証と 'Ajax'ヘルパーのためには必要ありません。 – nemesv

+0

返信いただきありがとうございますnemesv。残念ながら、Microsoft * .jsファイルを削除しても、この特定の問題は解決しませんでした。 –

答えて

7

のjQuery Mobileを高く評価し、独自のAJAX要求を実行されるだろう。この動作を停止するには、属性を<form>タグに配置します。

$('#my-form').on('submit', false); 

ドキュメント::あなたはまた、単に組み込みのjQueryのモバイルAJAXのではなくを使用することができhttp://jquerymobile.com/demos/1.1.0/docs/forms/forms-sample.html

また、のようなものを、それが正常に提出しないように、フォームの通常の動作を停止することを確認してくださいそれには余分なJSも含まれています。これにより、フォームのaction属性を投稿するサーバー側のファイルにする必要があります。

+0

鮮やかな、素晴らしい答えであるJasperに感謝します。 –

+0

@ジャスパー...偉大な答え作業素晴らしい –

関連する問題