展会信息港展会大全

jquery选择符快速提取web表单数据示例
来源:互联网   发布日期:2016-01-26 10:23:32   浏览:1764次  

导读:遇到要重复多次同样的事时,就想找一种省时省力的方法,下面就为大家介绍下利用jquery选择符快速提取web表单数据本人比较懒,在做web时,当遇到要重复多次同样的事时,就想找一种省时省力的方法。以前在web提交表 ...

遇到要重复多次同样的事时,就想找一种省时省力的方法,下面就为大家介绍下利用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

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港