2012-03-06 13 views
1

フォームを送信すると、フォームが成功すると成功します。私は成功とアラートが発射されていない'ajax:success'コールバックが機能しません

$('#new_invitation').submit(function(e) { 
var $this = $(this); 
$this.on('ajax:success', function(e) { 
    alert ('Success'); 
}); 
}); 

jquery ujsを使用しています:(。

なぜ?

答えて

2

どのようにあなたがやっている?あなたが実際にあなた提出されていないように私には思えますsubmit()関数がフォームの通常の送信をトリガーするので、AJAXを使用してフォームを作成してください。

$('#new_invitation').live('submit', function(event){ 
    event.preventDefault(); //Stops the normal form submission process 
    form = $(this); 
    data = form.serialize(); //serializes the form data 
    jQuery.ajax({ 
    type: 'POST', 
    dataType: 'JSON', // JSON, HTML, whatever your API responds to 
    url: form.attr('action'), //fetches the URL from the form 
    success: function(data,textStatus,jqXHR){ 
     //Success callback 
     alert('success'); 
    } 
    }); 
}); 

これは '#new_invitation'がフォームタグのIDであると仮定しています。 jQueryのドキュメントサイトをご覧になることをお勧めします。彼らはAJAXに関する豊富な情報を持っています:http://api.jquery.com/jQuery.post/

幸運を祈ってください!

+0

問題が修正されました:D。私はこれを自分の形にしなければならない。 '$( 'form [data-method =" delete "]')。live( 'ajax:success'、function(){});' – hyperrjas