ajax表单提交重定向类似于非ajax表单
ajax form submit redirect like a not ajax form
我有这个代码,用来提交带有附件文件的表单
$("#career_form").submit(function(e){
var this_current = $(this);
var formData = new FormData(this_current[0]);
var url = this_current.attr("action");
$.ajax({
url : url,
data: formData,
type: 'post',
cache: false,
async: true,
beforeSend: function(){ },
success: function(response){
if(response === true){
alert("successfully sent");
}
}
});
e.preventDefault();
});
但是表单一直将我重定向到它的目标文件"操作中的url",就像它不是ajax提交一样,但如果我用替换"data"参数
data: $(this).serialize();
它有效(ajax提交),有什么想法、帮助、建议、建议吗?
给出e.preventDefault();在函数的开头。
new formData
时会引发错误。
要将formData用于jquery ajax请求,请使用选项processData
并将其设置为false,如:
$.ajax({
url : url,
data: formData,
type: 'post',
cache: false,
async: true,
processData: false,
beforeSend: function(){ },
success: function(response){
if(response === true){
alert("successfully sent");
}
}
});
这就是为什么它适用于serialize
,而不适用于示例中的formData
的原因。
e.preventDefault
工作正常,但如果之前出现错误,它将无法工作。通过将e.preventDefault
放在函数的顶部,无论以后的代码中是否有错误,它都会阻止该操作。
您可以编辑代码中的var formData = new FormData(this_current[0]);
,并使用以下行:
var formData = new FormData(document.querySelector("#career_form"));
此外,如果您使用多部分表单发送表单中的文件,则需要在ajax调用中设置以下参数。
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
希望这能有所帮助。有关使用formData的更多信息,请参见此处。
试试这个:
$("#career_form").submit(function(e){
e.preventDefault();
var fd = new FormData(document.querySelector("form"));
fd.append("CustomField", "This is some extra data");
$.ajax({
url: "change-status.php",
type: "POST",
data: fd,
processData: false,
contentType: false,
success: function(response){
if(response){
alert("successfully sent");
}
}
});
});
相关文章:
- 加载后的页面与ajax表单提交不起作用
- AngularJS JQuery Ajax表单提交等效
- 将Computed PHP Variable传递到jQuery/Ajax表单
- 当阻止Enter键提交AJAX表单时,关注下一个输入是't工作
- Ajax表单数据phpPOST不工作
- 我的ajax表单没有提交
- Javascript尽管ID不同,但只有第一个按钮提交给Ajax表单
- ajax表单提交的编码问题
- AJAX表单验证-防止空白字段
- ajax表单提交后从客户端重定向
- AJAX 表单不是 AJAX 提交
- PHP Ajax 表单提交 .什么也没发生
- Jquery&Ajax表单验证功能
- ajax表单每触发第n个select onchange事件就发送n次
- 为什么event.prventDefault()和'return false'停止我的AJAX表单提交操
- 使用jQuery和Ajax表单提交问题
- 提交AJAX表单,重定向而不是在页面上处理
- Ajax表单不返回PHP数据
- Ajax表单提交密钥或更改
- Jquery Ajax表单提交:多个表单-相同的按钮id's