我有一个页面,我想手动或以编程方式提交。但在允许提交页面之前,函数[create_impi_num(x)]需要使用“$ .post('”在该函数中存储数据。
问题: 如果我设置了提交(函数(e)返回false,则调用函数并存储我的数据。如果我将返回值设置为true,则表示我的表单被发布但我的函数被忽略。
这是我的代码:
$('#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;
}
});
我花了好几个小时试图找到解决方案。如果有人能提供帮助,我们将不胜感激!
答案 0 :(得分:2)
根本无法按照你想要的方式完成。
jQuery post
函数可以实现异步,意味着它将在某个时间返回,同时代码继续执行。在返回结果之前,提交功能已经完成。
如果您需要提交,使用javascript原生函数提交或重定向,您可以在post
回调中执行的操作。