form.submit()中加入回掉函数方法不执行?

发布于 2022-09-06 00:41:30 字数 583 浏览 21 评论 0

用form模拟文件下载,以下方式是可以正常运行的。
var form = $('<form>', {

'method': 'POST',
'action': "../base/variate/download"

}).hide();
$.each(this.queryParam, function(k, v) {

 form.append($('<input>', {
     'type': 'hidden',
     'name': k,
     'value': v
  }));

});
$('body').append(form);
form.submit();
form.remove();
但是在form.submit()中加入回掉函数,代码如下:
form.submit(function(e){

e.preventDefault();
console.log(123)

})
下载就不执行了,而且浏览器没有任何反应,也没有报错。
谁能给看一下问题出在哪里呀?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空心↖ 2022-09-13 00:41:30

这种执行方案是不会触发onSubmit事件的,这表示使用js调用native submit方法。

form.submit();

这样来触发,或者给button给一个点击

form.trigger('submit');
//或
$(":submit", form).click();

如果你需要在onSunmit里面停止默认事件,也就是不提交,其后还是可以主动调用.submit()

form.on('submit', function(e){
    e.preventDefault();
    
    xxxxx
    
    
    this.submit();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文