簡單了解Ajax表單序列化的實現(xiàn)方法
更新時間:2019年06月14日 10:54:44 作者:夏至未至~
這篇文章主要介紹了簡單了解Ajax表單序列化的實現(xiàn)方法,隨著Ajax的出現(xiàn),表單序列化已經成為一種需求,在學習原生Ajax時,若用POST方法向后臺提交數(shù)據時,就需要將表單序列化,需要的朋友可以參考下
原生表單序列化
隨著Ajax的出現(xiàn),表單序列化已經成為一種需求,在學習原生Ajax時,若用POST方法向后臺提交數(shù)據時,就需要將表單序列化
在JavaScript中可以利用表單字段的type屬性,連同name和value屬性,一起實現(xiàn)表單的序列化。
在進行表單序列化之前,需要弄清楚在表單提交期間,瀏覽器是怎樣將數(shù)據發(fā)送給服務器的。
- --對表單字段的名稱和值進行URL編碼,使用和號(&)分隔
- --不發(fā)送禁用的表單字段
- --只發(fā)送勾選的復選框和單選按鈕
- --不發(fā)送type為"reset"和"button"的按鈕
- --多選選擇框中的每個選中的值單獨一個條目
- --在單擊提交按鈕提交表單的情況下,也會發(fā)送提交按鈕,否則不發(fā)送提交按鈕
- --<select>元素的值,就是選中的<option>元素的value特性的值。如果<option>元素沒有value屬性,則就是<option>元素的文本值
實現(xiàn)表單序列化的函數(shù)為:
function serialize(form){
var parts=[],
field=null,
i,
len,
j,
optLen,
option,
optValue;
for (i = 0; i < form.elements.length; i++) {
field=form.elements[i];
switch (field.type) {
case 'select-one':
case 'select-multiple':
if(field.name.length){
for (var j = 0; j < field.options.length; j++) {
option=field.options[j];
if (option.selected) {
optValue="";
if (option.hasAttribute) {
optValue=(option.hasAttribute('value') ? option.value : option.text);
}else{
optValue=(option.attribute['value'].specified ? option.value : option.text);
}
parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(optValue));
}
}
}
break;
case undefined: //字段集
case "file": //文本輸入
case "submit": //提交按鈕
case "reset": //重置按鈕
case "button": //自定義按鈕
break;
case "radio": //單選按鈕
case "checkbox": //復選框
if (!field.checked) {
break;
}
//執(zhí)行默認操作
default:
//不包含沒有名字的表單字段
if(field.name.length){
parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value));
}
}
}
return parts.join("&");
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Bootstrap 模態(tài)框(Modal)帶參數(shù)傳值實例
模態(tài)框(Modal)是覆蓋在父窗體上的子窗體。下面通過本文給大家介紹Bootstrap 模態(tài)框(Modal)帶參數(shù)傳值實例代碼,需要的朋友參考下吧2017-08-08
JavaScript如何實現(xiàn)對數(shù)字保留兩位小數(shù)一位自動補零
本文給大家介紹基于JavaScript如何實現(xiàn)對數(shù)字保留兩位小數(shù)一位自動補零的實例代碼,代碼簡單易懂,感興趣的朋友一起學習吧2015-12-12
js實現(xiàn)兼容PC端和移動端滑塊拖動選擇數(shù)字效果
這篇文章主要為大家詳細介紹了js實現(xiàn)兼容PC端和移動端滑塊拖動選擇數(shù)字的效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02

