2

我有一个想要手动或以编程方式提交的页面。但在允许提交页面之前,需要启动一个函数 [create_impi_num(x)] 以在该函数中使用 "$.post('" 存储数据。

问题:如果我将 submit(function(e) 设置为 return false,则调用函数并存储我的数据。如果我将 return 设置为 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;
    }

  });

我花了几个小时试图找到解决方案。如果有人可以提供帮助,将不胜感激!

4

1 回答 1

2

它根本无法按照您想要的方式完成。

jQuerypost函数执行 ayncrounsly 意味着它将在未来的某个时间返回,同时代码继续执行。在返回结果之前,提交功能已经完成。

如果您需要提交,您可以做的是在post回调上,使用javascript原生函数提交或重定向。

于 2013-01-15T08:41:45.490 回答