以下是我想在 JQuery 脚本中执行的操作。在下面的提交函数(第 4 个)中,我想确定表单是否有文件输入并使用 ajax 提交,或者只是不使用 ajax 的常规表单提交。换句话说,如果表单已上传,则进行常规提交。
我在下面的提交功能中写了这个问题。这是我让它发挥作用唯一需要的东西。
谢谢你!
function FindFileInput(){
// check for file input
var FileInput = $('input:file');
if(FileInput.length > 0){
return true;
}else{
return false;
}
}
function validation(){
// code to validate form
...
}
function ajaxSubmit(formData){
$.ajax({
// ajax submit code
});
}
$(myForm).submit(function(e){
e.preventDefault();
// 1. if NO file input present
if(FindFileInput() === false){
if(validation() === true){
// serialize and call ajaxSubmit function
}
}
// 2. if file input IS present
if(FindFileInput() === true){
if(validation() === true){
// QUESTION: How do I submit the form here???
}
}
});
From http://api.jquery.com/submit/ http://api.jquery.com/submit/:
现在,当提交表单时,会发出警报消息。有时候是这样的
在实际提交之前,因此我们可以通过以下方式取消提交操作
在事件对象上调用 .preventDefault() 或返回 false
来自我们的处理程序。当另一个事件发生时,我们可以手动触发该事件
元素被点击:
所以扭转你的逻辑。不要将 e.preventDefault() 作为默认调用,然后尝试撤消它,而是仅在实际需要时才调用它。
$(myForm).submit(function(e){
// 1. if NO file input present
if(FindFileInput() === false){
if(validation() === true){
ajaxSubmit(formdata);
}
}
// 2. if file input IS present
if(FindFileInput() === true){
if(validation() === true){
return true; // submit form as normal, don't call e.preventDefault()
}
}
// Prevent form from submitting normally
e.preventDefault();
return false;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)