HTML+;JQuery:空表单值
我试图将表单数据+附加参数“id”发送到服务器(Python、Google应用程序引擎) 我的表格:HTML+;JQuery:空表单值,jquery,python,html,ajax,google-app-engine,Jquery,Python,Html,Ajax,Google App Engine,我试图将表单数据+附加参数“id”发送到服务器(Python、Google应用程序引擎) 我的表格: <form method="post" action="/" id="form1" runat="server" enctype='multipart/form-data'> <div class="fileButtons"> <input type='file' id="imgInp" name="imgInp" accept="im
<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>
数据
仅接收id
使用Firebug调试时:我得到以下信息:
this form#form1
imgInp input#imgInp property value = "2.jpg" attribute value = "null"
remove input#remove attribute value = "Remove"
当您尝试在数据数组中推送值时,可能是尝试错误 而不是写作 var data=$(this.serializeArray(); push({name:'id',value:id}) 试试这个 var data=$(this.serializeArray();
data.push({id:$(“#imgInp”).val}) 试着像这样序列化数组:
var data = new FormData($(this)[0]);
有关更多信息,请参阅并注意,它在旧版本的Internet Explorer中不起作用。如果您需要跨浏览器兼容性,则无法通过ajax提交文件。但id不是表单的一部分。这是一个全局参数。serializeArray()之后我仍然得到[]。在这种情况下,下面@dlebech给出的答案对您的问题是准确的。但是提交文件输入参数在IE9和旧版本的IE浏览器上不起作用。如果你看一下这里,你会发现文件输入没有序列化。我在这里看到了这种用法。如果不能这样做,我如何将附加数据添加到表单并在POST请求中发送所有数据?您可能需要查看FormData对象。使用它,您可以通过AJAX调用发送文件和其他内容。这里有一些例子:
var data = new FormData($(this)[0]);