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 //}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM