1. <nav id="9tq2v"><big id="9tq2v"><video id="9tq2v"></video></big></nav>
        1. <label id="9tq2v"></label>
          设为首页 - 加入收藏 镇江站长网 (http://www.uswotlk.com)- 中小站长必上的网站 - 聚焦镇江站长前沿资讯!
          热搜: 手机 优酷 中国 创业者
          当前位置: 主页 > 综合聚焦 > 创业热点 > 模式 > 正文

          异步获取并提交表单数据

          发布时间:2018-10-09 09:03 所属栏目:[模式] 来源:站长网
          导读:异步提交表单数据最痛苦的两个破事: 1、编码乱码问题 事实上 ajax 技术底层是 unicode 编码,当 GBK 的页面与接口进行数据交互时,会产生乱码情况。解决方案有多种,可以将页面转化为 utf-8 编码,或者发送数据前进行两次 encodeURI 编码,在接受数据时进

          异步提交表单数据最痛苦的两个破事:

          1、编码乱码问题

          事实上 ajax 技术底层是 unicode 编码,当 GBK 的页面与接口进行数据交互时,会产生乱码情况。解决方案有多种,可以将页面转化为 utf-8 编码,或者发送数据前进行两次 encodeURI 编码,在接受数据时进行一次解码。

          2、获取表单字段数据

          拿 YUI3 来说,其实原生的 io-form 模块已经做了很好的封装。其中有个叫做 _serialize 的私有方法,可以对异步提交表单的行为进行预先编码:

          Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] data: encodeURI(Y.io._serialize({
          id: '#formId',
          useDisabled: true
          }))

          即使用了一个龌龊的私有方法,看上去确还算完美。假如字段的 name 属性中没有“[]”等特殊符号,一般情况下都是没问题的。
          这个 _serialize 方法的原理很简单,通过获取节点内 input,select 和 textarea 等字段,然后根据 name 遍历并取值即可。

          一个简单的代码案例(YUI3):

          Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] var parameters = [], nodeList;
          nodeList.each(function (v) {
          parameters.push(v.get('name') + '=' + Y.Lang.trim(v.get('value')));
          });
          parameters = parameters.join('&');

          【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

          网友评论
          推荐文章
          金亚洲游戏