• javacript序列化表单数据


    在前端开发时,用到表单交互的比较多,在我们实现一些异步操作数据时,表单数据的序列化就显得尤为重要了。下面我们一起来看看如何进行序列化。

    如,我们在进行提交表单时,地址栏里会显示这样的东东:name=zhangsan&sex=male&phone=55555,这种就叫做序列化。

     

    js实现如下:

    // 通过表单的name或者id进行序列化

    var
    formData = function(formStr){ var elements = document.forms[formStr].elements || document.getElementById(formStr).elements, len = elements.length, i = 0, name = value = option = '', dataArr = []; for(; i < len; i++){ name = encodeURIComponent(elements[i].name); value = encodeURIComponent(elements[i].value); switch(elements[i].type){ case 'radio': case 'checkbox': if(elements[i].checked){ dataArr.push(name + '=' + value); } break; case 'select-one': case 'select-multiple': option = elements[i].options; var tempArr = []; for(var j = 0, mlen = option.length; j < mlen; j++){ if(option[j].selected){ option[j].attributes.value && option[j].attributes.value.specified ? tempArr.push(option[j].value) : tempArr.push(option[j].text); } } dataArr.push(name + '=' + encodeURIComponent(tempArr.join())); break; case 'button': case 'reset' : case 'submit': case 'file' : break; default: dataArr.push(name + '=' + value); break; } } return dataArr.join('&'); }
    //假设用作异步请求的js函数为ajax
    var url = formData('myform');
    ajax('a.php', url);
  • 相关阅读:
    hadoop之 解析HDFS的写文件流程
    Linux之 手动释放内存
    Heka 的编译
    go get 下载需要的相关工具
    峰值计算的方法
    thrift简介
    Bazaar 版本控制工具
    Homebrew
    虚拟机下centos时间不正确的方便解决方法
    golang 应用的部署相关技术
  • 原文地址:https://www.cnblogs.com/tinkbell/p/3169965.html
Copyright © 2020-2023  润新知