FormData表單序列化

2021-10-05 03:01:04 字數 1759 閱讀 8069

當我們用ajax提交表單時,通常用的都是serialize對表單進行序列化。

但是有了檔案標籤type='file'時,用serialize進行序列化,就會有問題了

解決表單有檔案時序列化的方法,就是用formdata

下面來說下formdata怎麼用:

例項化了乙個空的formdata物件,可以認為它就是乙個form表單,但現在裡面什麼控制項都沒有。

var formdata =

newformdata()

;

可直接放表單物件序列化,自動封裝物件物件為dom物件
var formdata =

newformdata($

("#subform")[

0]);

給例項化的formdata物件新增乙個控制項,注意這裡新增的是表單已寫有input標籤的
type

="file"

name

="myfile"

>

formdata.

('myfile',$

('input[name=myfile]')[

0].files[0]

);

沒用表單時,以「鍵-值」對的形式給formdata新增控制項,注意第3個引數「上傳檔名」是可選的

formdata.

(name, value, filename)

;

將例項化的formdata作為jquery.ajax()方法data引數的值傳遞進去,提交給後端伺服器

注意的是以下三個引數不可少

cache:

false

,processdata:

false

,contenttype:

false

,

cache設定為false,上傳檔案不需要快取。

contenttype設定為false。因為是由form表單構造的formdata物件,且已經宣告了屬性***enctype=「mutipart/form-data」***,所以這裡設定為false。

一、有表單

ajax用var formdata = new formdata($("#subform")[0]);

......

form

>

function

ajaxsubmit()

二、沒有表單
var omyform =

newformdata()

; omyform.

("username"

,"groucho");

omyform.

("accountnum"

,123456);

omyform.

("file",$

('#file')[

0].files[0]

); $.ajax

(

表單序列化

1.serialize 方法 格式 var data form serialize 功能 將表單內容序列化成乙個字串。這樣在ajax提交表單資料時,就不用一一枚舉出每乙個引數。只需將data引數設定為 form serialize 即可。與jquery中其他方法一樣,serialize 方法也是作用...

表單序列化

1 2 對錶單字段的名稱和值進行url編碼,使用和號 分割。3 不傳送禁用的表單字段。4 只傳送勾選的核取方塊和單選按鈕。5 不傳送type為 reset 和 button 的按鈕。6 多選選擇框中的每個選中的值單獨乙個條目。7 在單擊提交表單的情況下,也會傳送提交按鈕 否則,不傳送提交按鈕。也包括...

表單序列化

什麼是表單序列化尼?1 對錶單字段的名稱和值進行url編碼,使用和號 分隔 2 不傳送禁用的表單字段 3 只傳送勾選的核取方塊和單選按鈕 4 不傳送 type 為 reset 和 button的按鈕 5 多選按鈕每個選中的值單獨乙個條目 6 單擊提交按鈕提交表單時,會傳送提交按鈕 否則不傳送提交按鈕...