以下代码可放在一个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 //}