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 相关文章推荐
JavaScript 浏览器验证代码(来自discuz)
Jul 17 Javascript
jquery垂直公告滚动实现代码
Dec 08 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
Jan 13 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
May 09 Javascript
基于jQuery仿淘宝产品图片放大镜特效
Oct 19 Javascript
jQuery实现摸拟alert提示框
May 22 Javascript
JavaScript计算器网页版实现代码分享
Jul 15 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
Sep 06 Javascript
jQueryUI Datepicker组件设置日期高亮
Oct 13 Javascript
Node.js中的child_process模块详解
Jun 08 Javascript
分享5个顶级的JavaScript Ajax组件库
Sep 16 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
Sep 16 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
PHP脚本中include文件出错解决方法
2008/11/20 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
pjblog中的UBBCode.js
2007/04/25 Javascript
javascript中的有名函数和无名函数
2007/10/17 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
详解在Python程序中使用Cookie的教程
2015/04/30 Python
python抽象基类用法实例分析
2015/06/04 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
基于python指定包的安装路径方法
2018/10/27 Python
python命令行工具Click快速掌握
2019/07/04 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
Numpy之reshape()使用详解
2019/12/26 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
Python 中如何写注释
2020/08/28 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
2015双创工作总结
2015/07/24 职场文书
国家助学金受助感言
2015/08/01 职场文书
Go语言怎么使用变长参数函数
2022/07/15 Golang