近期整理公司的 JavaScript 發現很多人使用著直接抓取 val(),繼上一篇提到 typeof 後,我又馬上做出 serialize()
章節,希望大家只要是全讀範圍的 input 請使用 serialize()
減少 undefined
問題。
serialize()方法
簡單來說是一種序列化,目的是為了將input 、select 、textarea等輸入框轉成序列化方式。
序列化
序列化是將物件狀態轉換為可保存或可傳輸格式的形式。[ps : 下次章節會詳細介紹 序列化 VS 反序列化]
- 檢視 $(‘form’).serialize() 內容
1
2
3
4$('#submit').click(function(){
let form = $('form').serialize();
console.log(form);// name=john&old=21&date=2021/12/11
})
使用範例
簡單創建幾個input值以及form,如果有強迫症請自行排版。清楚看到這是我們平常讓User去Key時候,常用到的樣板。
1 | <form role="form" action="post"> |
未來遇到 submit 傳到ajax額外新增,又不想自動submit如下方寫法。如果你是這麼撰寫js會不時遇到資料庫內容有 undefined
,原因可能是不存在的物件、變數,請避免使用下方範例。
1 | function AjaxForm(select) { |
這樣就完成傳值了,下方範例意思為 form 會將裡面的input 所有的值轉換成序列,效果如同上方範例。上下方法內容回傳一樣,下方可以減少錯字的危機、減少行數,請各好好善用.serialize()功能。
1 | function AjaxForm(select) { |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 John Conte!
評論
DisqusGitalk