2013-12-22 196 views
0

好吧我加載一個形式插入到頁面中通過Ajax調用就像這樣:通過ajax加載表單然後通過Ajax發送表單?

$('.ajax_click').on('click', function(event) { 
    event.preventDefault(); 
    /* Act on the event */ 
    var getmsgtoload = $(this).find('.ajax_get_msg').attr('href'); 
    var getpelytoload = $(this).find('.ajax_get_reply').attr('href'); 
    //get reply 
    $.ajax({ 
    url: getpelytoload, 
    }).done(function(data) { 
    var getreply = $(data).find('#reply_div').html(); 
    $('#reply_div').replaceWith('<div id="reply_div">'+getreply+'</div>'); 
      //Process our send! 
      $('#create').submit(function() { // catch the form's submit event 
      $.ajax({ // create an AJAX call... 
        data: $(this).serialize(), // get the form data 
        type: $(this).attr('method'), // GET or POST 
        url: $(this).attr('action'), // the file to call 
       }) 
        .done(function(data){ // the file to call 
        console.log(data); 
         $('#created').html('<h1>Success</h1>'); // update the DIV 
        }) 
        .fail(function(){ 
        console.log('error on the from....'); 
        }); 
       return false; // cancel original event to prevent form submitting 
      }); 
    }) 
    .fail(function() { 
    console.log("error"); 
    }) 
    .always(function() { 
    console.log("complete"); 
    }); 
}); 

我試圖再從通過AJAX藏漢形式發送數據,但數據參數只是返回整頁面而不僅僅是表單。 爲什麼? Chris 澄清 表單將不會「POST」數據在所有,但它在頁面上工作我從表單拉入它如下所示: 我打電話給一個形式到DIV A與ajax調用從頁面A到頁面B的ajax的回調成功的功能我然後運行ajax通過序列化發送表單數據,但它不會發送時,頁面上查看錶單時它會正常工作,但不是當它被拉入頁面時乙! Chris

+0

'$(this).serialize()'輸出的是什麼?當我通過ajax提交表單數據時,我通常會得到每個字段值併爲每個字段設置一個可變值。 –

+1

這可能是有用的http://stackoverflow.com/questions/9557761/submit-form-via-ajax-in-jquery?rq=1 –

+0

這個序列化之前,嵌套ajax輸出數據罰款。 成功的數據輸出整個頁面... – vimes1984

回答

1

因爲在您的「完成」事件處理程序中,您會收到服務器響應您的POST的內容。在你的情況下,服務器響應整個頁面。

+0

現在有道理...所以如何發送它在表單上設置的方法是POST,並且它在獨立頁面上工作。 – vimes1984

+0

您能否進一步澄清您的問題?我不太明白。 –