2

有没有办法让表单的 submit() 操作将数据返回到调用它的词法范围?我想要这样的东西:

$(function() {
  $("div").click(function() {
    var submitReturn = $("form").submit();
    // do stuff with submitReturn
    ...
    // end do stuff with submitReturn
  }):

  $("form").submit(function(event) {
    event.preventDefault();
    // do stuff
    ...
    // end do stuff

    return someObj;
  });
});

这行不通。实际submit(function)注册只是将函数注册为事件链中的回调,它不会接管整个事情。

我想我可以通过使用.click事件$.post()而不是 来做到这一点$('form').submit(),这在现实世界的用例中是一个完全令人满意的选择,但现在我很好奇我想要的是否可以完成。

4

1 回答 1

2

您可以将其拆分为另一个函数:

$(function() {
  function submit() {
    // do stuff
    ...
    // end do stuff

    return someObj;
  }

  $("div").click(function() {
    var submitReturn = submit();
    // do stuff with submitReturn
    ...
    // end do stuff with submitReturn
    // Do you call $("form").submit() here anyways? Depends on the situation.
  }):

  $("form").submit(function(event) {
    event.preventDefault();
    submit();
  });
});

(假设有一种形式。)但是,如果它是异步的,则需要传递回调。

于 2013-07-27T23:37:42.943 回答