jquery选择符快速提取web表单数据示例


Posted in Javascript onMarch 27, 2014

本人比较懒,在做web时,当遇到要重复多次同样的事时,就想找一种省时省力的方法。

以前在web提交表单并且需要验证用户输入时,在提取用户输入信息时,都要在js用到document.getElementById(),这样一个两个表单域还行,但有很多时(我就遇到过有十几个的情况)看看都眼花,所以个人就比较反感这种方式,不过还好,我自己瞎琢磨,利用jquery找到了一种方便的方法。

我给需要提交数据每个表单域添加了一个额外的属性,用自己额外定义的属性"_postField"代替原来的name属性,比如<input type="text" _postField="name" /><input type="radio" _postField="sex" />之类,然后用query获取所有存在_postField属性的dom对象,并进行遍历,封装成以_postField的值为key,其内容为value的json键值对,其js的方法如下:

<script type="text/javascript> 
function getFormField(sel){ 
var objs = $("*["+sel+"]"); 
var postData = {}; 
for(var i=0,len=objs.length;i<len;i++){ 
var obj = objs[i]; 
var nodeName = obj.nodeName.toLowerCase(); 
var field = $(obj).attr(sel); if(nodeName=="input"){ 
if(obj.type.trim()=="radio"&&(obj.checked||obj.checked=="checked")){ 
postData[field] = $(obj).val(); 
continue; 
} 
if(obj.type.trim()=="checkbox"&&(obj.checked||obj.checked=="checked")){ 
var ov = postData[field]||""; 
var nv = ov+","+$(obj).val(); 
postData[field] = nv.replace(/^,+/,""); 
continue; 
} 
if(obj.type.trim()=="text"||obj.type.trim()=="hidden"){ 
postData[field] = $(obj).val(); 
continue; 
} 
continue; 
} 
if(nodeName=="textarea"){ 
postData[field] = $(obj).val(); 
continue; 
} 
if(nodeName=="select"){ 
var val = obj.options[obj.selectedIndex].value; 
postData[field] = val; 
continue; 
} 
postData[field] = $(obj).html(); 
} 
//返回从表单获取数据的json数据 
return postData; 
} 
</script>

测试代码:
<form style="margin-left:200px; margin-top:300px;"> 
<input type="text" value="" _postField="name" /><br /><br /> 
<input type="radio" value="男" name="sex" _postField="sex" />男 
<input type="radio" value="女" name="sex" _postField="sex" />女 
<input type="radio" value="中性" name="sex" _postField="sex" />中性 <br /><br /> 
<select _postField="job"> 
<option value="上班">上班</option> 
<option value="讨饭">讨饭</option> 
<option value="啥都不相干">啥都不相干</option> 
</select> 
<br /><br /> 
<input type="button" value=" OK " onclick="test();" /> 
</form> 
<script> 
function test(){ 
var postData = getFormField("_postField"); var sb = []; 
for(var o in postData){ 
sb.push(o+"="+postData[o]); 
} 
alert(sb.join("\n")); 
} 
</script>

jquery选择符快速提取web表单数据示例 

以上例子的表单域比较少,一些东西体现不出,但当表单域的数量比较多少时,就能体现出其方便性,而且重用性较好;再者,如果用jquery异步提交的话,连手动封装json数据的操作都省了。
也有人可能不愿意给表单域增加类似“_postField”的自定义字段,那就直接用本身就有的name也行,这只是jquery选择符的使用不同,其实质还是一样的。

Javascript 相关文章推荐
获取数组中最大最小值方法js代码(自写)
Aug 12 Javascript
js截取小数点后几位的写法
Nov 14 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
Nov 30 Javascript
JS实现仿QQ聊天窗口抖动特效
May 10 Javascript
AngularJS 最常用的功能汇总
Feb 17 Javascript
Webpack 实现 AngularJS 的延迟加载
Mar 02 Javascript
AngularJS 过滤器的简单实例
Jul 27 Javascript
Ajax跨域实现代码(后台jsp)
Jan 21 Javascript
swiper插件自定义切换箭头按钮
Dec 28 Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 Javascript
详解JavaScript 事件流
Sep 02 Javascript
代码解析React中setState同步和异步问题
Jun 03 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
Mar 27 #Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 #Javascript
js弹出确认是否删除对话框
Mar 27 #Javascript
js或jquery实现页面打印可局部打印
Mar 27 #Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 #Javascript
jquery无法设置checkbox选中即没有变成选中状态
Mar 27 #Javascript
JS字符串拼接在ie中都报错的解决方法
Mar 27 #Javascript
You might like
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
jQuery select的操作实现代码
2009/05/06 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
2017/07/04 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
python抓取网页中链接的静态图片
2018/01/29 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
python3实现字符串操作的实例代码
2019/04/16 Python
python实现最速下降法
2020/03/24 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
python 实现波浪滤镜特效
2020/12/02 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
物流管理应届生求职信
2013/11/07 职场文书
毕业晚会主持词
2014/03/24 职场文书
中介业务员岗位职责
2014/04/09 职场文书
单位工作证明格式模板
2014/10/04 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js