0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
3.2.0-5
/
standard
/
htdocs
/
lib
/
mootools
/
src
/
Element
/
[
Home
]
File: Element.Form.js
/* Script: Element.Form.js Contains Element prototypes to deal with Forms and their elements. License: MIT-style license. */ /* Class: Element Custom class to allow all of its methods to be used with any DOM element via the dollar function <$>. */ Element.extend({ /* Property: getValue Returns the value of the Element, if its tag is textarea, select or input. getValue called on a multiple select will return an array. */ getValue: function(){ switch(this.getTag()){ case 'select': var values = []; $each(this.options, function(option){ if (option.selected) values.push($pick(option.value, option.text)); }); return (this.multiple) ? values : values[0]; case 'input': if (!(this.checked && ['checkbox', 'radio'].contains(this.type)) && !['hidden', 'text', 'password'].contains(this.type)) break; case 'textarea': return this.value; } return false; }, getFormElements: function(){ return $$(this.getElementsByTagName('input'), this.getElementsByTagName('select'), this.getElementsByTagName('textarea')); }, /* Property: toQueryString Reads the children inputs of the Element and generates a query string, based on their values. Used internally in <Ajax> Example: (start code) <form id="myForm" action="submit.php"> <input name="email" value="bob@bob.com"> <input name="zipCode" value="90210"> </form> <script> $('myForm').toQueryString() </script> (end) Returns: email=bob@bob.com&zipCode=90210 */ toQueryString: function(){ var queryString = []; this.getFormElements().each(function(el){ var name = el.name; var value = el.getValue(); if (value === false || !name || el.disabled) return; var qs = function(val){ queryString.push(name + '=' + encodeURIComponent(val)); }; if ($type(value) == 'array') value.each(qs); else qs(value); }); return queryString.join('&'); } });