zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    Intel 编译器 线程安全检查 真心的很详细 转
    当前软件设计分析
    当代并行机系统
    多人游戏服务器
    ACE源代码目录结构
    (转!)Z buffer和W buffer简介
    数据库-视图(View)详解
    推荐一个vs自带工具分析代码的复杂度
    SCOPE_IDENTITY的用法
    vs2013开发调试cocos2d-x-Lua工程项目
  • 原文地址:https://www.cnblogs.com/tinkbell/p/3169965.html
Copyright © 2011-2022 走看看