如果我有表格:
<form id="myAjaxUploadForm" enctype="multipart/form-data" method="post" action="/upload">
<input type="file" id="my_img_upload_input" name="my_image">
<input type="submit" value="upload">
</form>
然后,我FormData()
在jQuery ajax请求中创建一个对象:
var myShinyData = new FormData($("#myAjaxUploadForm")[0]);
1)什么是数据结构myShinyData
?数组?
2)如果是这样,则在实例化之后,key:values
该数组包含什么(使用上面的示例)?
3)在查看了几个演示之后,我使用了上面的实例化代码,并且可以正常工作,但是0
索引指的是什么?表单中的第一个输入字段?
4)如果我在后面附加了key:value
:
myShinyData.append("username", username);
我怎么能立即提醒username
钥匙的价值?alert(myShinyData.username)
?
5)key:value
默认情况下,实例化时是否还有其他可用的文件,例如文件名和文件大小,如果是的话,我该如何访问和警告它们?
以上信息可能在以下出色的文档中,但是我还无法完全提取和理解它:
https://developer.mozilla.org/zh-CN/docs/Web/Guide/Using_FormData_Objects https://developer.mozilla.org/zh-CN/docs/Web/API/FormData
1)myShinyData将是一个JavaScript对象,这就是为什么可以使用对象名称(.
或["key"]
)取消引用它的原因。
2)实例化之后,对象将为表单中的每个输入字段包含一个key:value对,其中key将是字段名称,而value将是值。
3)[0]
on$("#myAjaxUploadForm")
引用页面本身上的实际形式。当您使用jQuery选择对象时,您将获得一个jQuery对象。jQuery对象是普通DOM对象的包装,以公开可以针对它执行的其他方法。
$("#myAjaxUploadForm")[0] === document.getElementById("myAjaxUploadForm")
4)是的,如果您向FormData追加新键,则可以使用点表示法或数组表示法来访问它:
myShinyData.username
myShinyData["username"]
5)默认情况下可用的信息将是表格中的形式;我认为这将包括文件名,但是可能需要一些解析。任何其他信息都需要以编程方式获取,或者使用您已经拥有的信息,或者通过其他方式获取。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句