如下代碼可放在一個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 //}