source: trunk/workflow/js/jscode/get_form_fields.js @ 3684

Revision 3684, 1.5 KB checked in by viani, 13 years ago (diff)

Ticket #944 - Correção na biblioteca get_form_field.js do workflow

Line 
1/**
2* Gets all fields that have the id starting with "_".
3* It's usefull when you have to validate fields with an ajax call, for example.
4* Returns an array of elements.
5*/
6function get_form_fields(form_id){
7        var elems = document.forms[form_id].elements;
8        var arr   = new Object();
9        var j     = 0;
10        for(var i = 0; i < elems.length; i++){
11                if(elems[i].id.substr(0,1) == "_"){
12                        // if the element is a radiobutton and is NOT checked, goes to the next element
13                        if(elems[i].type == "radio" && !elems[i].checked){
14                                continue;
15                        }
16
17                        if(elems[i].type == "select-multiple"){
18                                var selectBoxMultiple = elems[i];
19                                var selectArr = new Array();
20                                for(k = 0; k < elems[i].length; k++){
21                                        var option = selectBoxMultiple.options[k];
22                                        if(option.selected){
23                                                if(option.value != ''){
24                                                        selectArr.push(option.value);
25                                                } else {
26                                                        selectArr.push(option.innerHTML);
27                                                }
28                                        }
29                                }
30
31                                arr[elems[i].id] = selectArr;
32                                j++;
33                                continue;
34                        }
35
36                        // if the element has [] in the end of its name, return its values (or checked elements) like an array
37                        if(elems[i].name.substr(-2,2) == "[]"){
38                                elem_name = elems[i].name.substr(0, elems[i].name.length - 2);
39                                if(arr[elem_name] == undefined){
40                                        arr[elem_name] = new Array();
41                                }
42
43                                if(elems[i].type != "checkbox")
44                                        arr[elem_name].push(elems[i].value);
45                                else if(elems[i].checked)
46                                        arr[elem_name].push(elems[i].value);
47                                j++;
48                                continue;
49                        }
50
51                        arr[elems[i].id] = elems[i].value;
52                        j++;
53                }
54        }
55        return arr;
56}
Note: See TracBrowser for help on using the repository browser.