| | 29 | }, |
|---|
| | 30 | |
|---|
| | 31 | _fastSerializeElements: function(elements, options) { |
|---|
| | 32 | if (typeof options != 'object') options = { hash: !!options }; |
|---|
| | 33 | else if (Object.isUndefined(options.hash)) options.hash = true; |
|---|
| | 34 | var key, value, submitted = false, submit = options.submit; |
|---|
| | 35 | |
|---|
| | 36 | var result = {}; |
|---|
| | 37 | for(var i=0, size=elements.length; i <size; i++) |
|---|
| | 38 | { |
|---|
| | 39 | var element = elements[i]; |
|---|
| | 40 | var name = element.name; |
|---|
| | 41 | if (!name) |
|---|
| | 42 | continue; |
|---|
| | 43 | |
|---|
| | 44 | if (Form.Element.Serializers[element.tagName.toLowerCase()]) |
|---|
| | 45 | { |
|---|
| | 46 | if (!element.disabled) { |
|---|
| | 47 | key = name, value = Form.Element.Serializers[element.tagName.toLowerCase()](element); |
|---|
| | 48 | if (value != null && (element.type != 'submit' || (!submitted && |
|---|
| | 49 | submit !== false && (!submit || key == submit) && (submitted = true)))) { |
|---|
| | 50 | if (key in result) { |
|---|
| | 51 | // a key is already present; construct an array of values |
|---|
| | 52 | if (!Object.isArray(result[key])) result[key] = [result[key]]; |
|---|
| | 53 | result[key].push(value); |
|---|
| | 54 | } |
|---|
| | 55 | else result[key] = value; |
|---|
| | 56 | } |
|---|
| | 57 | } |
|---|
| | 58 | } |
|---|
| | 59 | } |
|---|
| | 60 | |
|---|
| | 61 | return options.hash ? result : Object.toQueryString(result); |
|---|