jQueryインターセプトフォームパラメーション文字列への提出
-
28-10-2019 - |
質問
フォームがあります。このフォームは、iframeに投稿を介して提出します。これは、リクエストが処理され、結果に応じて、提出の有効性に応じて親のコンテンツを変更するJavaScriptが実行されます。
今、私はこの手順が好きではありません。いくつかのフォームを同時に提出する機能が必要ですが、この1つの隠されたiframeしかありません。それで、私はAjaxでそれをやりたいと思います。各フォームの提出に対して個別のリクエストを作成します。
しかし、私のフォームは複雑です。これは、アレイに変数を追加するチェックボックス、クリックされた画像とそのクリック座標が送信される必要がある、そのような複雑なもので構成されています。そのため、各入力の値をそれぞれ計算してポストパラメーターに追加する代わりに、私はそのような複雑なもので構成されています。文字列(ちなみに:配列をそのように作成する方法がわかりません)、提出コンテンツをインターセプトし、それらすべてのパラメーターを含む投稿文字列として保存し、Ajaxにこの文字列を使用することを好むでしょう。リクエストを投稿します。
この機能でやりたいこと:
$('#myForm').submit(function(event){
// process the submission, e. g. event.getContent().toPostString();
// create the AJAX request and send it and attach listeners (I know how to do this line ;)
return false; // I don't want the form submitted (to the iframe)
});
前もって感謝します!
解決
iframeを使用しないでください、ただ使用してください jQueryのajaxメソッド: :(使用しました post()
以下の例で)
$('#myForm').submit(function(event){
//url //post data
$.post(this.action, $(this).serialize(), function(returnData){
//do something with returnData
})
return false; //do not submit form the normal way
});
これが例です: http://jsfiddle.net/maniator/y6r8e/
フォームに何かを入力して送信します。
他のヒント
jQuery's シリアライズ() 関数は、.ajax()または.post()を介して簡単なフォームの提出を可能にするために、フォームデータを収集します。
所属していません StackOverflow