2012-03-07 16 views
1

私はjQueryのダイアログボックスで、検証のたくさんの大きなフォームを表示していますが、私は実際にフォームを送信したら、それはAjaxを介して負荷とモーダルに滞在するように、とにかくそれを得ることのあります場合、私は今思ったんだけど窓私は開いている?とにかくこれをやっているかどうかわからない。jQueryダイアログ - ajax経由でフォームを送信しますか?

ありがとうございます!

答えて

2

あなたMUSTまたあなたの検証方法に依存し、これを統合する方法あなたのフォームajaxifyingのこの素晴らしいjquery form pluginをチェックしてください。その美しさは、あなたが(私はすべての入力フィールドのためのJavaScriptスニペットを書くのではなくを行うことを好む)あなたの入力のpattern属性内の検証を入れている場合は検証のそれぞれが通過した場合にのみ、フォームが提出されますということです。要するに、あなたのイベントを提出するデフォルトの動作が変更されますと、あなたは、この時間は、それがajaxであることを除いて、あなたのREQUESTの正確なレプリカを持つことになります。

+1

に見てみましょう! – Nick

3

はい、あなたはfalseを返し、その後、それをすべてのフォームフィールドを渡すGET AJAXを実行するために送信ボタンをhyjack必要があります。

+1

ボタンは、ユーザーがヒットした場合、「入力」何...それの一部の世話をしますか? – charlietfl

+0

これは良いオプションです – Nick

1
$('.mySubmitButton').bind('click', function(e) { 
    //do something else 
    return false; //stops form from submitting the normal way. 
}); 

または

$('form#IDofForm').submit(function() { 
     //do something upon submit 
    }); 

かのコンボ両方あなたが

1

を希望する場合はここだけの成功を提出する際にフォーム要素自体を置き換えますfailry簡単な方法です。コードが形成する前に、ページの読み込み上で実行することができますので、私は、Ajaxにロードされている()メソッドを上使用しています

$(document).on('submit', '#formID',function() { 
    var $form = $(this); 
    var dataToServer = $form.serialize(); 
    $.post(urlString, dataToServer, function(dataFromServer) { 
     /* run ajax sucess code here */ 

     $form.replaceWith(dataFromServer); 


    }); 
    return false; /* avoid browser submitting form*/ 

}); 

EDIT:あなたは

+0

はありがとうありがとう、私は可能であれば拡張子を避けたかったけど、正直なところ、これは、偉大に見える誘惑が、それはHM、多分再やって私の検証を意味するだろう。この今 – Nick

関連する問題