输入类型文件未序列化 jquery [英] Input type file not serialize jquery

查看:28
本文介绍了输入类型文件未序列化 jquery的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用通过序列化方法完成的ajax发送表单数据,但输入类型文本和电子邮件在数组中序列化但输入类型文件未在数组中序列化

<div class="form-group"><label for="name">名称:</label><input type="text" class="form-control" id="name" name="name" placeholder="输入名称">

<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屋!

查看全文
相关文章
前端开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆