zoukankan      html  css  js  c++  java
  • 表单序列化

    什么是表单序列化尼?

      1 对表单字段的名称和值进行URL编码,使用和号(&)分隔

      2 不发送禁用的表单字段

      3 只发送勾选的复选框和单选按钮

      4 不发送 type 为 reset 和 button的按钮

      5 多选按钮每个选中的值单独一个条目

      6 单击提交按钮提交表单时,会发送提交按钮;否则不发送提交按钮 。也包括前面说过的 type 为 image 的 input 元素。

      7 select元素的值,就是选中的 option元素的value特性的值。如果option元素没有value特性,则是 option元素的文本值。

    <select> select-one
    <select multiple>   select-multiple
    <button> submit
    <buttom type = button> button
    <button type="reset"> reset
    <button type="submit"> submit

      

     1 function serialize(form){
     2         var parts = [], field=null,
     3                 i,
     4                 len,
     5                 j,
     6                 optLen,
     7                 option,
     8                 optValue;
     9         for(i=0;len=selectbox.length,i<len;i++){
    10             field = selectbox[i];
    11             switch(field.type){
    12                 case "select-one":
    13                 case "select-multiple":
    14                     if(field.name.length){
    15                         for(j=0,optLen=field.options.length;j<optLen;j++){
    16                             option = field.options[j];
    17                             if(option.selected){
    18                                 optValue = "";
    19                                 if(option.hasAttribute){
    20                                     optValue = (option.hasAttribute("value")?option.value:option.text)
    21                                 }else{
    22                                     optValue = (option.attributes["value"].specified?option.value:option.text);
    23                                 }
    24                                 parts.push(encodeURIComponent(field.name)+"="+encodeURIComponent(optValue));
    25                             }
    26                         }
    27                     }
    28                     break;
    29                 case undefined://字段集  fieldset
    30                 case "file": //文件输入
    31                 case "submit"://提交按钮
    32                 case "reset": //重置按钮
    33                 case "button": //自定义按钮
    34                     break;
    35                 case "radio"://单选按钮
    36                 case "checkbox"://复选框
    37                     if(!field.checked){
    38                         break;
    39                     }
    40                 default :
    41                     if(field.name.length){
    42                         parts.push(encodeURIComponent(field.name)   +   "=" +   encodeURIComponent(field.value));
    43                     }
    44             }
    45         };
    46         return parts.join("&");
    47     }

     

  • 相关阅读:
    指针常量与常量指针
    C语言创建并使用dll
    C语言创建并使用lib
    配置错误
    目前常用的自然语言处理开源项目/开发包大汇总
    pyhanlp 文本聚类详细介绍
    Spring Boot中对自然语言处理工具包hanlp的调用详解
    pyhanlp 停用词与用户自定义词典功能详解
    Hanlp分词实例:Java实现TFIDF算法
    Spark应用HanLP对中文语料进行文本挖掘--聚类详解教程
  • 原文地址:https://www.cnblogs.com/czhyuwj/p/5721376.html
Copyright © 2011-2022 走看看