JS获取form表单数据

以下代码可放在一个js文件中,以便通用:

 1 //获取指定表单中指定标签对象 
 2 function getElements(formId, label) {
 3 var form = document.getElementById(formId);/* 获取表单引用(对象) */
 4 var elements = [];
 5 var tagElements = form.getElementsByTagName(label);/* 获取表单中指定标签名的元素引用(对象)数组 */
 6 for (var j = 0; j < tagElements.length; j++) {
 7 elements.push(tagElements[j]);
 8 }
 9 return elements;
10 }
11 // ----注:tagElements[j].name这种写法并不能确定该对象是哪一种类型的标签,如果是单复选按钮标签,则需要判断是否被选中的情况,所以要写一个方法过滤一下:
12 // 根据标签type获取标签name,value(过滤)
13 function typeFilter(element) {
14 var label = [];
15 switch (element.type.toLowerCase()) { /* 表单元素引用数组.元素类型.字符串转小写 */
16 case 'submit':
17 case 'hidden':
18 case 'password':
19 case 'text':
20 label.push({
21 name : element.name,/* 自定义的列名:列值 */
22 value : element.value
23 });
24 return label;
25 case 'checkbox':
26 case 'radio':
27 if (element.checked)
28 label.push({
29 name : element.name,/* 自定义的列名:列值 */
30 value : element.value
31 });
32 return label;
33 }
34 return false;
35 }
36 //---注:case项可自定义,比如去掉 case 'submit'这种没意义的可能。
37 
38 // 获取指定表单的指定标签的name和value,并存到一个数组里,形参label可传入'*',表示全部标签
39 function get_form_label_name_value(formId, label) {
40 var elements = getElements(formId, label);
41 var group = [];
42 var one = [];
43 for (var i = 0; i < elements.length; i++) {
44 one = typeFilter(elements[i]);
45 group.push({
46 name : one[0].name,/* 自定义的列名:列值 */
47 value : one[0].value
48 });
49 }
50 return group;
51 }
52 
53 //-----------------------------------------------------------------------------------
54 
55 //前台调用例子:
56 //function show() {
57 //    var NV = get_form_label_name_value('表单id','标签如input');
58 //    if (NV != null && NV.length > 0) {
59 //    for (var i = 0; i < NV.length; i++) {
60 // if (NV[i].name != "") { /*这个if不加也可以,但是为了避免特殊情况,加上反而更有利于之后存入数据库等操作*/
61 //    alert(NV[i].name);
62 //    alert(NV[i].value);
63 //    }
64 // }
65 //    }
66 //}

 

posted @ 2018-09-12 16:56  nreg  阅读(31742)  评论(0编辑  收藏  举报