输入类型文件未序列化 jquery [英] Input type file not serialize jquery
问题描述
我想使用通过序列化方法完成的ajax发送表单数据,但输入类型文本和电子邮件在数组中序列化但输入类型文件未在数组中序列化
<div class="form-group"><label for="email">电子邮件:</label><input type="email" class="form-control" id="email" name="email" placeholder="输入电子邮件">
<div class="form-group"><label for="email">照片:</label><input type="file" name="userPhoto" id="userPhoto" class="form-control"/>
<button type="submit" class="btn btn-default submit_add" id="enter">提交</button></表单>
和 Ajax 代码
$('.submit_add').click(function(e){e.preventDefault();var data = $('#myform').serialize();控制台日志(数据);返回假;$.ajax({网址: '/ajax',类型:'POST',缓存:假,数据:数据,数据类型:'json',成功:功能(数据){if (data.success == true ) {window.location.href = '/';} 别的 {alert('错误:有问题.');}},错误:函数(jqXHR,textStatus,错误){alert('文本状态'+textStatus+', err '+err);}})});
控制台响应
name=manish+prajapati&email=kumar%40manish.com
你应该试试这个:
var data = new FormData($("#myform")[0]);
并设置:
processData: 假,内容类型:假,
在此处查看更多信息:http://portfolio.planetjon.ca/2014/01/26/submit-file-input-via-ajax-jquery-easy-way/
I want to send form data using ajax done by serialize method but input type text and email is serialized in array but input type file not serialize in array
<form role="form" action="javascript:;" id="myform" enctype = "multipart/form-data" method = "post">
<div class="form-group">
<label for="name">Name:</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Enter Name">
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Enter email">
</div>
<div class="form-group">
<label for="email">Photo:</label>
<input type="file" name="userPhoto" id="userPhoto" class="form-control" />
</div>
<button type="submit" class="btn btn-default submit_add" id="enter">Submit</button>
</form>
And Ajax Code
$('.submit_add').click(function(e){
e.preventDefault();
var data = $('#myform').serialize();
console.log(data); return false;
$.ajax({
url: '/ajax',
type: 'POST',
cache: false,
data: data,
dataType: 'json',
success: function(data) {
if (data.success == true ) {
window.location.href = '/';
} else {
alert('Error : There is something wrong.');
}
},
error: function(jqXHR, textStatus, err){
alert('text status '+textStatus+', err '+err);
}
})
});
Console response
name=manish+prajapati&email=kumar%40manish.com
You should try this:
var data = new FormData($("#myform")[0]);
and set:
processData: false,
contentType: false,
See more here: http://portfolio.planetjon.ca/2014/01/26/submit-file-input-via-ajax-jquery-easy-way/
这篇关于输入类型文件未序列化 jquery的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!