2013-01-15 106 views
2

我有一個我想要手動或以編程方式提交的頁面。但在頁面被允許提交之前,函數[create_impi_num(x)]需要使用該函數中的「$ .post('」)存儲數據。根據ajax結果提交表格

問題: 如果我設置提交(函數(E)返回假的函數調用,我的數據存儲如果我將回歸真實的,我的形式發佈,但我的功能被忽略

這裏是我的代碼:。

$('#pay-and-complete').submit(function(e) { 

var ok = confirm('Do you really want to save your data?'); 
    if (ok) { 

    var CanPay; 
    var igroupid = Number($('#hid-step3-entryid').val()); 

    //function here 
     create_impi_num($('#hid-parc-id').val(),$('#hid-step3-entryid').val()); 

     return true; 
    } 
    else { 
    //Prevent the submit event and remain on the screen 
    create_impi_num($('#hid-parc-id').val(),$('#hid-step3-entryid').val()); 
     e.preventDefault(); 
     return false; 
    } 

    }); 

我花了幾個小時試圖找到一個解決方案。如果有人可以幫助,將不勝感激!

回答

2

它根本無法按照你想要的方式完成。

jQuery post函數異步執行意味着它將在某個時間返回,同時代碼繼續執行。直到返回的結果提交功能已經完成。

你可以做的是在post回調,如果你需要提交,使用JavaScript本地函數來提交或重定向。

+0

AHA!謝謝Gordon的建議!我已經改變了代碼來創建一個.click(函數事件,然後做東西..然後從我的函數中檢查出我做了一個.submit()。現在它工作正常。 –

+0

@PhilipMcLennan,我很高興聽到,你應該接受答案,如果它幫助你,或者寫下你自己的答案並接受答案,請在答案左邊的複選標記。[閱讀此](http://meta.stackexchange.com/questions/5234/how-接受答案)祝你好運! – gdoron