您当前的位置: 首页 > 前端教程 > JS教程 > jQuery获取表单数据serialize方法的使用和注意事项

jQuery获取表单数据serialize方法的使用和注意事项

作者:xiaoxiao 来源:未知 发布时间: 2014-07-30 10:59 点击:
/* 获取表单formId下的数据 */ var formData=$( '#formId' ).serialize(); /* 表单formId下的数据formData最终序列化的结果如下所示: userName=adminuserAge=22userMobile=13551369999 */ /* 需要注意的是jQuery中serialize方法是没有去除表单值两端空格的, 此时需要

jQuery获取表单数据serialize方法的使用和注意事项

  /*

      获取表单formId下的数据

  */

  var formData = $('#formId').serialize();

  /*

      表单formId下的数据formData最终序列化的结果如下所示:

          userName=admin&userAge=22&userMobile=13551369999

  */

  /*

      需要注意的是jQuery中serialize方法是没有去除表单值两端空格的,

      此时需要对源码稍作修改(此jQuery版本以1.9.1为例),具体修改如下:

      大概在jQuery1.9.1版本源码的7341行处,可搜索关键字:encodeURIComponent即可找到,

      找到后将

          s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value);

      修改为s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(jQuery.trim(value));即可

  */

  //Serialize an array of form elements or a set of

  //key/values into a query string

  jQuery.param = function (a, traditional) {

      var prefix,

  s = [],

  add = function (key, value) {

      // If value is a function, invoke it and return its value

      value = jQuery.isFunction(value) ? value() : (value == null ? "" : value);

      //quber:为serialize方法去除值两边的空格

      s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(jQuery.trim(value));

  };

      // Set traditional to true for jQuery <= 1.3.2 behavior.

      if (traditional === undefined) {

          traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;

      }

      // If an array was passed in, assume that it is an array of form elements.

      if (jQuery.isArray(a) || (a.jquery && !jQuery.isPlainObject(a))) {

          // Serialize the form elements

          jQuery.each(a, function () {

              add(this.name, this.value);

          });

      } else {

          // If traditional, encode the "old" way (the way 1.3.2 or older

          // did it), otherwise encode params recursively.

          for (prefix in a) {

              buildParams(prefix, a[prefix], traditional, add);

          }

      }

      // Return the resulting serialization

      return s.join("&").replace(r20, "+");

  };
分享到:
本文"jQuery获取表单数据serialize方法的使用和注意事项"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4