我正在制作一个页面检查是否需要通过POST提交数据或者简单的ajax调用是否合适的事件。 IE:有一个文件,如果没有文件提交数据并继续使用该页面,它需要处理上传。
$(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.
}
提前谢谢。
答案 0 :(得分:1)
使用jQuery' s $(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
}
}
答案 1 :(得分:0)
我没有测试它,但你不能先测试文件,然后,如果没有文件,请做一个防止默认(或返回false)?
$(document).on("submit", "form", function (e) {
if($(this).find('[name=file]').val()) {
return true;
}
else {
e.preventDefault();
// Do AJAX
}
}