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

 更新时间:2014年03月27日 16:42:22   作者:  
遇到要重复多次同样的事时,就想找一种省时省力的方法,下面就为大家介绍下利用jquery选择符快速提取web表单数据
本人比较懒,在做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异步提交的话,连手动封装json数据的操作都省了。
也有人可能不愿意给表单域增加类似“_postField”的自定义字段,那就直接用本身就有的name也行,这只是jquery选择符的使用不同,其实质还是一样的。

相关文章

  • jQuery实现右侧抽屉式在线客服功能

    jQuery实现右侧抽屉式在线客服功能

    本篇文章给大家分先一下jQuery实现右侧抽屉式在线客服功能的实例代码,有需要的读者们参考下吧。
    2017-12-12
  • jQuery中nextAll()方法用法实例

    jQuery中nextAll()方法用法实例

    这篇文章主要介绍了jQuery中nextAll()方法用法,实例分析了nextAll()方法的功能、定义及查找匹配元素之后所有的同辈元素使用技巧,需要的朋友可以参考下
    2015-01-01
  • JQuery省市联动效果实现过程详解

    JQuery省市联动效果实现过程详解

    这篇文章主要介绍了JQuery省市联动效果实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • jQuery表单域选择器用法分析

    jQuery表单域选择器用法分析

    这篇文章主要介绍了jQuery表单域选择器用法,实例分析了常见的表单元素选择器的使用技巧,并给出了一个完整的实例总结,需要的朋友可以参考下
    2015-02-02
  • HTML5+jQuery实现搜索智能匹配功能

    HTML5+jQuery实现搜索智能匹配功能

    本文主要介绍了HTML5+jquery实现的搜索匹配效果的实例代码。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • jQuery实现倒计时(倒计时年月日可自己输入)

    jQuery实现倒计时(倒计时年月日可自己输入)

    本篇文章主要对jQuery实现倒计时进行了实例分析。并附上实例源码,有兴趣的朋友可以下载源码调试运行试试看,希望对大家有所帮助
    2016-12-12
  • JQuery实现的按钮倒计时效果

    JQuery实现的按钮倒计时效果

    这篇文章主要介绍了JQuery实现的按钮倒计时效果,涉及jQuery结合时间函数动态修改按钮属性的相关技巧,需要的朋友可以参考下
    2015-12-12
  • jQuery Mobile和HTML5开发App推广注册页

    jQuery Mobile和HTML5开发App推广注册页

    jQuery Mobile和HTML5的组合可以直接开发web版的app,下面通过本教程给大家分享jQuery Mobile和HTML5开发App推广注册页的实例代码,感兴趣的朋友参考下吧
    2016-11-11
  • jquery获取复选框被选中的值

    jquery获取复选框被选中的值

    这篇文章主要介绍了jquery获取复选框被选中的值的方法,需要的朋友可以参考下
    2014-03-03
  • jQuery选择器之子元素过滤选择器

    jQuery选择器之子元素过滤选择器

    这篇文章主要为大家详细介绍了jQuery选择器之子元素过滤选择器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09

最新评论