我习惯使用submit(callback)
jQuery方法,在回调中我序列化我的表单并进行ajax post
调用。
但这一次,我需要上传一个文件,这个方法似乎不起作用,所以我尝试使用submit()
jQuery方法直接提交表单,但我无法避免重定向,我之前调用e.preventDefault();
:
$('form.input.upload').change(function(e) {
e.preventDefault();
$('form.example').submit();
});
答案 0 :(得分:0)
您必须在preventDefault
的{{1}}事件中执行onsubmit
,而不是<form>
的{{1}}事件:
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();
});
按Enter键都会触发onsubmit事件。但是:如果以编程方式调用<input type="submit">
函数,则不会触发事件。
而且,更深入地思考,你真正的问题 - 文件上传 - 比我的回答有点困难。通过评论链接问题对此有一个非常好的答案;)