2014-04-16 63 views
-1

我已經制作了一個使用KendoUI treeview控件的頁面,其數據由AJAX調用發佈,並且還有表單數據。目前我有一個單獨的按鈕,用於AJAX調用和張貼表單,現在我想發佈表單數據並且還可以在單​​個按鈕上執行AJAX調用。想要發表一個表單並且還要通過ajax發佈數據?

我試圖做一個jQuery函數,只需單擊一次即可觸發這兩個按鈕。我做了另一個按鈕具有click事件:

<input type=submit onclick="BtnClick" /> <-- on click function call 

javascript函數:

function BtnClick() { 
    $("#Submit").click(); <-- Submit ajax call 
    $("#Save").click(); <-- post form 
} 

在上面的函數,AJAX調用的走向,同時,網頁上還張貼這樣的AJAX調用沒有完成。

如何通過單擊即可獲得此功能?

請指教。

+0

發送Ajax調用時首先調用的形式提交 –

+0

你可以用*回調做*'$( 「#提交」)點擊(函數(){ \t。 $(「#Save」)。click(); })' – Praveen

+0

但是表單提交後頁面將會發布並且ajax調用將不會實例化 –

回答

2

您需要將其下的運行代碼按鈕,以便它們可以在#Save#Submit按鈕下單獨調用,或者在BtnClick函數下一起調用。試試這個:AJAX調用完成

<form id="myForm"> 
    <!-- your fields ... --> 

    <input type="button" id="postForm" /> 
</form> 
function submitHandler(callback) { 
    // make the AJAX call, using the callback parameter as the callback: 
    $.ajax({ 
     url: 'foo.com', 
     data: { foo: 'bar' }, 
     success: function() { 
      callback && callback(); 
     } 
    }); 
} 

function saveHandler() { 
    // post the form 
    $('#myForm').submit(); 
} 

function formHandler() { 
    // do both 
    submitHandler(saveHandler); 
} 

$("#Submit").click(submitHandler); 
$("#Save").click(saveHandler); 
$('#postForm').click(formHandler); 
+0

感謝您的答覆,但在我的情況下,有3個AJAX調用單頁和1表格,所以有很多時間需要,如果任何AJAX調用brak whloe鏈斷了,所以一些數據存儲和一些丟失,我們沒有恢復它。 –

+0

這是正確的,AJAX請求完成後會有一段時間延遲,但沒有其他方式使用此模型。在AJAX請求正在進行時您不能離開頁面,否則它將被取消。 –

2

你需要先發送Ajax調用,並在Ajax調用觸發形式的成功功能Submit按鈕:

這裏是僞代碼:

$.ajax({ 
... 
... 
success:function(){ 

$("#Save").click(); 
} 
}) 
相關問題