• javascript表单(form)序列化


    function serialize(form){
        var part =[];
        var field = null;
        var i;
        var j;
        var len;
        var optLen;
        var option;
        var optVal;
        for(i=0,len=form.elements.length;i<len;i++){
            field = form.elements[i];
            switch(field.type){
                case "select-one":
                case "select-multiple":
                    if(field.name.length){
                        for(j=0,optLen=field.options.length;j<optLen;j++){
                            option = field.options[j];
                            if(option.selected){
                                optVal="";
                                if(option.hasAttribute){
                                    optVal = (option.hasAttribute("value")?option.value:option.text);
                                }else{
                                    optVal = (option.attributes["value"].specified?option.value:option.text);
                                }
                                part.push(encodeURIComponent(field.name)+"="+encodeURIComponent(optVal));
                            }
                        }
                    }
                    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){
                        part.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value));
                    }
            }
        }
        return part.join("&");
    }

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

    2)不发送禁用的表单字段

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

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

    5)多选框中每个选中的值单独一个条目

    6)在单击提交按钮提交表单的情况下,也会发送提交按钮,否则不发送提交按钮。也包括type为“image”的<input>元素。

    7)select元素的值就是选中的<option>元素的value的值,如果option元素没有value属性,则为选中的文本值。

  • 相关阅读:
    毕设2020.02.02
    架构师眼中的高并发架构
    云时代架构读后感二
    以《淘宝网》为例,描述质量属性六个常见场景
    《架构漫谈》读后感
    云时代架构读后感一
    暑假周总结报告08
    暑假周总结报告07
    暑假周总结报告06
    假期周总结报告05
  • 原文地址:https://www.cnblogs.com/smile361/p/3408252.html
Copyright © 2020-2023  润新知