为什么 JQuery ajax 调用后页面会重新加载?
这是因为您的函数中有一个 return 语句,并且您没有在 onclick 处理程序中返回。
你必须归还它:
onclick="return submit_basic()"
// results like onclick="return false;". "false" is the return value;
因为你的函数有一个 return 语句,它返回false
所以你必须在 onclick 处理程序中返回它。
或为您的按钮添加类型:
<button type="button" ....>Create</button>
按钮元素需要该类型,因为它的默认行为是提交表单。
但我仍然觉得内联事件处理程序不好,而是不引人注目并使用submit
将表单提交到指定操作的事件:
$('#form_profile_new').submit(submit_basic);
or:
$('#form_profile_new').submit(function(){
return submit_basic();
});
对于您的最新评论:
虽然如果我在 ajax 调用中使用 formData 那么它就不起作用。
这是因为$(this)
表单中的数据不属于form
但 window 作为函数是在全局范围内定义的。
您可以做的是,在函数的参数中传递表单,例如:
onclick="return submit_basic(event, 'form_profile_new')"
然后在函数中:
function submit_basic(event, form) {
var formData = new FormData($('#'+form)[0]);
// ajax call
}