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 //}
相關文章
相關標籤/搜索