最近在做图片上传的时候用到了这个,但是还是不是很清楚,就在网上百度百度,特意做下总结,以便经常来看看,下次再做的时候忘了可以回头看看。
想得到一个FormData对象,很简单:
var formdata
= new FormData(); |
但一个空的FormData对象对我们没有意义,因此W3c草案提供了三种方案来获取或修改FormData。
方案1:创建一个空的FormData对象,然后再用append方法逐个添加键值对:
var formdata
= new FormData(); formdata.append( "name" ,
"司徒正美" );
formdata.append( "blog" ,
"http://www.cnblogs.com/rubylouvre/" ); |
方案2:取得form元素对象,将它作为参数传入FormData对象中!
var formobj
= document.getElementById( "form" ); var formdata
= new FormData(formobj); |
方案3:利用form元素对象的getFormData方法生成它!
var formobj
= document.getElementById( "form" ); var formdata
= formobj.getFormData() |
注意,formdata是一个不透明的对象,现在暂时只有一个append可以操作,不能通过序列化手段得到其里面的内容,这实在是遗憾。它的用法现在也只有一个,用于增强型的XMLHttpRequest对象的send方法中去!
var formElement
= document.getElementById( "myFormElement" ); formData
= formElement.getFormData(); formData.append( "serialnumber" ,
serialNumber++); xhr.send(formData); |