3

我曾经使用submit(callback)jQuery 方法,在回调中我序列化我的表单并进行ajax post调用。

但是这一次,我需要上传一个文件,这个方法似乎不起作用,所以我尝试用submit()jQuery方法直接提交表单,但我无法避免重定向,但我之前调用e.preventDefault();过:

$('form.input.upload').change(function(e) {
  e.preventDefault();
  $('form.example').submit();
});
4

1 回答 1

0

您必须preventDefault在 的onsubmit情况下做<form>,而不是在 的onchange情况下做<input>

$("form.example").on("submit", function (e) {
  // preventing browser's native form submit
  e.preventDefault();
});

$("form.example input.upload").on("change", function (e) {
  // auto-submit if input.upload changed
  $("form.example").submit();
});

更新:在我编辑之前,我并不完全正确。onsubmit 事件将通过单击<input type="submit">或在任何焦点中按 Enter来触发<input>。但是:如果您以submit()编程方式调用该函数,则不会触发该事件。

好吧,深入思考一下,您真正​​的问题 - 文件上传 - 比我的答案要难一些。由评论链接的问题对此有一个很好的答案;)

于 2013-05-09T20:38:00.343 回答