Javascript Jquery关于提交而不循环
我正在制作一个事件,页面检查是否需要通过POST提交数据,或者简单的ajax调用是否合适。IE:有一个文件,如果没有文件,它需要处理上传,提交数据并继续使用页面Javascript Jquery关于提交而不循环,javascript,jquery,submit,Javascript,Jquery,Submit,我正在制作一个事件,页面检查是否需要通过POST提交数据,或者简单的ajax调用是否合适。IE:有一个文件,如果没有文件,它需要处理上传,提交数据并继续使用页面 $(document).on("submit", "form", function (e) { e.preventDefault(); if($(this).find('[name=file]').val()) { // HAS FILE SUBMIT /* If I
$(document).on("submit", "form", function (e) {
e.preventDefault();
if($(this).find('[name=file]').val()) { // HAS FILE SUBMIT
/*
If I use $(this).submit() then it just loops. I figured return true might work or putting e.preventDefault(); after this code
*/
}
// If it made it past that if then does ajax things that are fine.
}
提前谢谢。我没有测试它,但您不能先测试文件,然后,如果没有文件,请执行“防止默认值”(或返回false)操作吗 使用jQuery的
$(this).submit()
将触发事件处理程序,并阻止默认操作,因此表单从不提交,而只是循环
要阻止这种情况发生,请改用本机this.submit()
$(document).on("submit", "form", function (e) {
e.preventDefault();
if ($(this).find('[name=file]').val()) { // HAS FILE SUBMIT
this.submit();
} else {
$.ajax(options); // ...etc
}
}
只需使用
this.submit()
来实际提交表单,而不只是触发事件处理程序?@adeneo这是正确的答案,请发布它,我将接受它。如果使用jquery,它将只是循环。我也应该试一下。另一个答案是无法挽救的。是的,我说我已经在评论中试过了,它不起作用。啊,我看到评论必须滚动,你没有读到我已经写过了。解释一下这个
和$(这个)
之间的区别可能不是个坏主意。
$(document).on("submit", "form", function (e) {
e.preventDefault();
if ($(this).find('[name=file]').val()) { // HAS FILE SUBMIT
this.submit();
} else {
$.ajax(options); // ...etc
}
}