HTML + JQuery:空表单值

时间:2013-09-11 10:26:42

标签: jquery python html ajax google-app-engine

我正在尝试将表单数据+附加参数“id”发送到服务器(Python,Google App Engine)。

我的表格:

 <form method="post" action="/" id="form1" runat="server" enctype='multipart/form-data'>
       <div class="fileButtons">
       <input type='file' id="imgInp" name="imgInp" accept="image/*"/>
        <input type="submit" id="submit" name="action" value="Send"/>
        <input type='button' id='remove' name="remove" value="Remove" />
        </div>
    </form>

Javascript功能:

$( '#form1' ).submit(function( event ) {
  event.preventDefault();

  var data = $(this).serializeArray();
  data.push({name: 'id', value: id});

  $.ajax({
    type: 'POST',
    url: '/set_image',
    data: data,
    dataType: 'json',
    success: function( resp ) {
      console.log( resp );
    }
  });
});

data只会收到ID。

使用Firebug进行调试时:我得到以下内容:

this form#form1

  imgInp input#imgInp property value = "2.jpg" attribute value = "null"

  remove input#remove attribute value = "Remove"

2 个答案:

答案 0 :(得分:1)

当您尝试推送数据数组中的值时,

可能是您尝试了错误。

而不是写作 var data = $(this).serializeArray();   data.push({name:&#39; id&#39;,value:id});

试试这个

var data = $(this).serializeArray();   data.push({id:$(&#34;#imgInp&#34;)。val});

答案 1 :(得分:1)

尝试像这样序列化你的数组:

var data = new FormData($(this)[0]);

有关详细信息,请参阅this answer,并注意它在旧版Internet Explorer中无效。如果您需要跨浏览器兼容性,则无法通过ajax提交文件。