国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

簡單了解Ajax表單序列化的實現方法

2024-09-01 08:34:00
字體:
來源:轉載
供稿:網友

原生表單序列化

隨著Ajax的出現,表單序列化已經成為一種需求,在學習原生Ajax時,若用POST方法向后臺提交數據時,就需要將表單序列化

在JavaScript中可以利用表單字段的type屬性,連同name和value屬性,一起實現表單的序列化。

在進行表單序列化之前,需要弄清楚在表單提交期間,瀏覽器是怎樣將數據發送給服務器的。

  • --對表單字段的名稱和值進行URL編碼,使用和號(&)分隔
  • --不發送禁用的表單字段
  • --只發送勾選的復選框和單選按鈕
  • --不發送type為"reset"和"button"的按鈕
  • --多選選擇框中的每個選中的值單獨一個條目
  • --在單擊提交按鈕提交表單的情況下,也會發送提交按鈕,否則不發送提交按鈕
  • --<select>元素的值,就是選中的<option>元素的value特性的值。如果<option>元素沒有value屬性,則就是<option>元素的文本值

實現表單序列化的函數為:

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;}//執行默認操作default://不包含沒有名字的表單字段if(field.name.length){parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value));}}}return parts.join("&");}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湖南省| 南汇区| 凤山县| 灵丘县| 织金县| 德化县| 邵武市| 濮阳县| 南溪县| 华阴市| 铜山县| 皮山县| 延安市| 新密市| 鄂托克前旗| 会宁县| 成安县| 山阳县| 太仆寺旗| 辛集市| 永仁县| 明溪县| 新营市| 金阳县| 葫芦岛市| 彭山县| 定远县| 巢湖市| 永春县| 普定县| 竹山县| 巴林左旗| 高唐县| 苏州市| 平凉市| 灵石县| 永和县| 武宁县| 邵武市| 望奎县| 四平市|