2013-01-15 70 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