Javascript 使用jQuery时,FomData始终为空
我有一个奇怪的问题,几个小时后我就想不出来了。。 我在JS中使用FormData对象来处理我的表单,我在其他页面中使用它,不会带来任何问题。 在这个特定的页面中,formData保持为空,不管我是手动声明还是以表单作为参数动态声明 这是我的JSJavascript 使用jQuery时,FomData始终为空,javascript,php,jquery,Javascript,Php,Jquery,我有一个奇怪的问题,几个小时后我就想不出来了。。 我在JS中使用FormData对象来处理我的表单,我在其他页面中使用它,不会带来任何问题。 在这个特定的页面中,formData保持为空,不管我是手动声明还是以表单作为参数动态声明 这是我的JS $(document).ready(function() { function handleFormSubmit(event) { event.preventDefault(); var
$(document).ready(function() {
function handleFormSubmit(event) {
event.preventDefault();
var ApiKey = '{{ Config::get('bts.apiKey') }}';
var ApiUrl = '{{ Config::get('bts.api') }}';
var url = ApiUrl + 'content/user/reminder';
var form = this,
formData = new FormData(form);
var test = new FormData();
test.append('test', 'fuck u');
console.log(test);
console.log(formData);
if ($(form).data('loading') === true) {
return;
}
$(form).data('loading', true);
formData.append('key', ApiKey);
$.ajax({
url: url,
type: 'post',
data: formData,
processData: false,
contentType: false,
enctype: 'multipart/form-data',
error: function (data) {
swal('Error', 'The distant server cannot be reached', 'error')
},
success: function (data) {
if (data.success) {
console.log('ok');
} else {
console.log('nope')
}
},
complete: function () {
$(form).data('loading', false);
$(form).trigger('reset');
},
dataType: 'json'
});
}
$('#complianceForm').on('submit', handleFormSubmit);
});
我使用的是Laravel4,但我的prob和它之间并没有链接,因为它在另一个页面上使用几乎相同的代码
关于我的HTML,这只是基本的输入,我甚至没有文件类型的输入
以下是我的表格:
<form method="POST" action="/manage/234/content/87/3/access" accept-charset="UTF-8" id="complianceForm" enctype="multipart/form-data">
如果有人知道原因,任何帮助都将非常感谢^ ^应该是这样的:
var form = this;
formData = new FormData($(form));
如果上述方法不起作用,您可以尝试使用此方法:
var formData = new FormData(document.getElementById('complianceForm'));
更新代码,然后重试是否打开控制台并检查错误,看起来变量
ApiKey
和apirl
是语法错误`?已检查,控制台上没有错误。var form=document.getElementById('complianceForm')代码>。。我对调试输出中的亵渎感到很高兴。得到了这个错误:TypeError:FormData的参数1。构造函数没有实现接口HTMLFormElement。当然FormData
不接受jQuery对象吗?在jQuery事件处理程序中使用this
将获得本机元素,这是OP想要的,这些代码行没有问题。OK,今天早上刚到办公室,然后再试一次。。如果我修改代码中的任何内容,都可以完美地工作。。。