我多次以各种形式看到这个问题,但我尽可能多地查看这些问题,而且我无法弄清楚为什么我的代码无法工作。
<script>
$('document').ready(function(){
$('datafixForm').submit(function( e ) {
var formData = new FormData(this);
$.ajax({
type: 'POST',
url: 'process.php',
data: formData,
contentType: false,
cache: false,
processData: false,
mimeType: "multipart/form-data",
success: function (data) {
console.log('Form submitted!');
console.log('Recieved' + data);
alert('Form submitted!');
},
error: function (data) {
console.log('We failed');
console.log('Got' + data);
alert('Didnt worky!');
}
});
e.preventDefault();
e.unbind();
});
$('datafixForm').submit(); // Submit the form
});
</script>
是我的提交脚本,但是它永远不会出现成功或错误控制台日志或警报。
我已经检查了chromes网络监视器,也没有显示发布请求。表单中有各种类型的数据,包括多个文件选择,但我不认为这应该是一个问题。
答案 0 :(得分:3)
您的表单是否具有ID datafixForm?因为您的选择器应该是$('#datafixForm')
,而不仅仅是$('datafixForm')
。
此外,我已经看到起始部分通常是$(document).ready(function)
而不是$('document').ready(function)
(文档通常不被称为字符串)但我不能100%确定这是否会导致问题。
编辑:评论中提到的$(文档)位并不是真正的问题,更多的是观察。显然两种方式都有效!
答案 1 :(得分:3)
确保您拥有正确的选择器。目前,datafixForm不是类,也不是id。
<强> ID 强>
#datafixForm
<强>类强>
.datafixForm
答案 2 :(得分:1)
将您的e.preventDefault();
移至提交活动的顶部。