zoukankan      html  css  js  c++  java
  • jQuery 序列化表单数据 serialize() serializeArray()

    1.serialize()方法

      格式:var data = $("form").serialize();

      功能:将表单内容序列化成一个字符串。

      这样在ajax提交表单数据时,就不用一一列举出每一个参数。只需将data参数设置为 $("form").serialize() 即可。

         与JQuery中其他方法一样,serialize()方法也是作用于一个JQuery对象,它能够将DOM元素内容序列化为字符串,用于ajax请求。通过使用serialize()方法,可以提交本页面的所有域,代码如下:

    1 $("#send").click(function(){
    2 
    3      $.get("get1.jsp", $("#form1").serialize(), function(data, textStatus)
    4 
    5               $("#resText").html(data);
    6 
    7      });
    8 
    9 });

    当单击“提交”按钮后,所有属于form1的表单元素都能提交到后台,即使在表单中再增加字段,脚本仍然能够使用,并且不需要做其他多余工作。

    用字符串方式时,需要注意对字符编码(中文问题),如果不希望编码带来麻烦,可以使用serialize()方法,它会自动编码。

    因为serialize()方法作用于JQuery对象,所以不光只有表单能使用它,其他选择器选取的元素也都能使用它,如以下JQuery代码:

    $(":checkbox,:radio").serialize();

    把复选框和单选框的值序列化为字符串形式,只会将选中的值序列化。

    在JQuery中还有一个与serialize()类似的方法--serializeArray(),该方法不是返回字符串,而是将DOM元素序列化后,返回JSON格式的数据。JQuery代码如下:

    var fields = $(":checkbox,:radio").serializeArray();

    console.log(fields);    //用FireBug输出

    $.param()方法是serialize()方法的核心,用来对一个数组或对象按照key/value进行序列化。

    比如将一个普通的对象序列化:

    var obj = {a:1,b:2,c:3};

    var k = $.param(obj);

    alert(k);    //输出a=1&b=2&c=3

    2.serializeArray()方法

      格式:var jsonData = $("form").serializeArray();

      功能:将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。

      比如,[{"name":"lihui", "age":"20"},{...}] 获取数据为 jsonData[0].name

  • 相关阅读:
    POJ 3261 Milk Patterns (求可重叠的k次最长重复子串)
    UVaLive 5031 Graph and Queries (Treap)
    Uva 11996 Jewel Magic (Splay)
    HYSBZ
    POJ 3580 SuperMemo (Splay 区间更新、翻转、循环右移,插入,删除,查询)
    HDU 1890 Robotic Sort (Splay 区间翻转)
    【转】ACM中java的使用
    HDU 4267 A Simple Problem with Integers (树状数组)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4417 Super Mario (树状数组/线段树)
  • 原文地址:https://www.cnblogs.com/wang1006tao/p/3926888.html
Copyright © 2011-2022 走看看