📅  最后修改于: 2023-12-03 15:09:47.391000             🧑  作者: Mango
在提交表单时,我们通常需要将表单数据序列化并发送给服务器。但是,在表单中包含文件上传输入时,我们需要排除这些文件输入,而只序列化普通的文本输入。
一个常见的方法是在表单 serialize()
函数中排除文件输入。以下是一种常用的方法:
$('form').on('submit', function(event) {
event.preventDefault();
var $form = $(this);
var formData = new FormData(this);
$form.find('input[type="file"]').remove();
var serializedData = $form.serialize();
var url = $form.attr('action');
$.ajax({
url: url,
type: 'POST',
data: serializedData,
cache: false,
success: function(data) {
console.log(data);
}
});
});
在上述代码中,我们使用 FormData
对象(通过 new FormData(this)
)来收集序列化过的表单数据,然后将文件输入从表单中移除(通过 $form.find('input[type="file"]').remove()
),最后将序列化过的表单数据发送到服务器(通过 $form.serialize()
)。
一些注意事项:
FormData
对象来上传文件。如果必须上传文件,请考虑使用其他方法来收集表单数据,例如使用 new FormData
对象来手动收集表单数据。以上就是将表单序列化并排除文件输入的方法。希望能对您有所帮助!