josn化表单数据

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

/**

 * josn化表单数据

 * @name baidu.form.json

 * @function

 * @grammar baidu.form.json(form[, replacer])

 * @param {HTMLFormElement} form        需要提交的表单元素

 * @param {Function} replacer           对参数值特殊处理的函数,replacer(string value, string key)

               

 * @returns {data} 表单数据js对象

 */

form.json = form.json || function
(form, replacer) {

    var
elements = form.elements,

        replacer = replacer || function
(value, name) {

            return
value;

        },

        data = {},

        item, itemType, itemName, itemValue,

        opts, oi, oLen, oItem;

        

    /**

     * 向缓冲区添加参数数据

     * @private

     */

    function
addData(name, value) {

        var
val = data[name];

        if(val){

            val.push || ( data[name] = [val] );

            data[name].push(value);

        }else{

            data[name] = value;

        }

    }

    

    for
(var
i = 0, len = elements.length; i < len; i++) {

        item = elements[i];

        itemName = item.name;

        

        // 处理:可用并包含表单name的表单项

        if
(!item.disabled && itemName) {

            itemType = item.type;

            itemValue = baidu.url.escapeSymbol(item.value);

            switch
(itemType) {

            // radio和checkbox被选中时,拼装queryString数据

            case
‘radio‘:

            case
‘checkbox‘:

                if
(!item.checked) {

                    break;

                }

                

            // 默认类型,拼装queryString数据

            case
‘textarea‘:

            case
‘text‘:

            case
‘password‘:

            case
‘hidden‘:

            case
‘file‘:

            case
‘select-one‘:

                addData(itemName, replacer(itemValue, itemName));

                break;

                

            // 多行选中select,拼装所有选中的数据

            case
‘select-multiple‘:

                opts = item.options;

                oLen = opts.length;

                for
(oi = 0; oi < oLen; oi++) {

                    oItem = opts[oi];

                    if
(oItem.selected) {

                        addData(itemName, replacer(oItem.value, itemName));

                    }

                }

                break;

            }

        }

    }

    return
data;

};

  

时间: 2024-10-30 09:05:55

josn化表单数据的相关文章

【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据

注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内容. 5.2 Sending HTML Form Data 5.2 发送HTML表单数据 本文引自:http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1 By Mike Wasson|June 15, 2012 作者:Mike Wasson | 日期:2012-6-15 Part

使用jQuery实现跨域提交表单数据

我们在WEB开发中有时会遇到这种情况,比如要从A网站收集用户信息,提交给B网站处理,这个时候就会涉及到跨域提交数据的问题.本文将给您介绍如何使用jQuery来实现异步跨域提交表单数据. 在jQuery中,我们使用json数据类型,通过getJSON方法来实现从服务端获取或发送数据,而当要向不同远程服务器端提交或者获取数据时,要采用jsonp数据类型.使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面.服务器端应当在JSON数据前加上回调函数名,以便

Struct2提交表单数据到Acion

Struct2提交表单数据到Action,Action取表单的数据,传递变量.对象 HTML.jsp <form action="reg.do" method="post"> <input> LoginAction get post 1.action里通过属性获取get.set方法获取. 2.模型驱动 3.model对象 action中要有和表单域对应的属性名,并且要有相应的符合javabean规范的set和get方法 http://blog

jQuery 序列化表单数据 serialize() serializeArray()

1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用一一列举出每一个参数.只需将data参数设置为 $("form").serialize() 即可. 2.serializeArray()方法 格式:var jsonData = $("form").serializeArray(); 功能:将页面表单序列化成一个JSON

如何发送HTML表单数据

多数时候,HTML表单的目的只是为了把数据发给服务器,之后服务器再处理这些数据并发送响应给用户.虽然看起来挺简单的,但我们还是得注意一些事情以确保传送的数据不会破坏服务器.或者给你的用户制造麻烦. 数据会到哪里去 关于客户端/服务器架构 整个web都是基于一种基本的客户端/服务器架构,该架构可以归纳如下: 一个客户端(通常是Web浏览器)使用HTTP协议发送一个请求给服务器(通常是web服务器程序,譬如Apache, Nginx, IIS, Tomcat等等),而服务器则以相同的协议响应这个请求

怎么获取表单数据

import java.io.IOException;import java.io.PrintWriter; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpS

Servlet学习笔记(二):表单数据

很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序.浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法. 1.GET 方法:GET 方法向页面请求发送已编码的用户信息.页面和已编码的信息中间用 ? 字符分隔,如下所示:http://www.test.com/hello?key1=value1&key2=value2 GET 方法是默认的从浏览器向 Web 服务器传递信息的方法,它会产生一个很长的字符串,出现在浏览器的地址栏中.如果您

JSP简单练习-获取表单数据

在JSP中,server端程序与client交互最经常使用的方法就是採用表单提交数据.表单提交的方法主要有两种,一种是get方法.还有一种是post方法.两者最大的差别:使用get方法提交的数据会显示在浏览器的地址栏中,而post方法则不会显示,故post方法更为经常使用.表单中提交的数据能够是文本框.列表框及文本区域等. 使用request对象的getParameter()方法可得到表单中对应数据项的值. 下面为"获得表单数据"的代码: <!-- userRegist2.jsp

爬虫模拟登陆之formdata表单数据

首先HTTP协议是个无连接的协议,浏览器和服务器之间是以循环往复的请求回复来交互的,交互的形式是以文件形式来进行的.比如在chrome开发者工具network中看到了 每一行是一个文件,又文件大小啊,文件类型啊,比如脚本,图片等. 根据协议,把每个文件的内容按照协议格式填入HTTP数据协议结构,其中,对于爬虫模拟登陆来说最重要的是表单数据formdata这个字段 在这我们看到又loginname字段,又password字段,我们看到这都是明码,所以做了遮挡.我们得到了这个,就可以根据字段名称自己