加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

异步获取并提交表单数据

发布时间:2018-10-10 06:36:07 所属栏目:创业 来源:站长网
导读:异步提交表单数据最疾苦的两个破事: 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('&');

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读