From f0cfe83e3725f9a3928da97a6e3085e79cb25309 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 18 Mar 2013 10:26:24 +0400 Subject: upgrade dojo to 1.8.3 (refs #570) --- lib/dojo/dom-form.js.uncompressed.js | 149 +++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 lib/dojo/dom-form.js.uncompressed.js (limited to 'lib/dojo/dom-form.js.uncompressed.js') diff --git a/lib/dojo/dom-form.js.uncompressed.js b/lib/dojo/dom-form.js.uncompressed.js new file mode 100644 index 000000000..101573065 --- /dev/null +++ b/lib/dojo/dom-form.js.uncompressed.js @@ -0,0 +1,149 @@ +define("dojo/dom-form", ["./_base/lang", "./dom", "./io-query", "./json"], function(lang, dom, ioq, json){ + // module: + // dojo/dom-form + + function setValue(/*Object*/ obj, /*String*/ name, /*String*/ value){ + // summary: + // For the named property in object, set the value. If a value + // already exists and it is a string, convert the value to be an + // array of values. + + // Skip it if there is no value + if(value === null){ + return; + } + + var val = obj[name]; + if(typeof val == "string"){ // inline'd type check + obj[name] = [val, value]; + }else if(lang.isArray(val)){ + val.push(value); + }else{ + obj[name] = value; + } + } + + var exclude = "file|submit|image|reset|button"; + + var form = { + // summary: + // This module defines form-processing functions. + + fieldToObject: function fieldToObject(/*DOMNode|String*/ inputNode){ + // summary: + // Serialize a form field to a JavaScript object. + // description: + // Returns the value encoded in a form field as + // as a string or an array of strings. Disabled form elements + // and unchecked radio and checkboxes are skipped. Multi-select + // elements are returned as an array of string values. + // inputNode: DOMNode|String + // returns: Object + + var ret = null; + inputNode = dom.byId(inputNode); + if(inputNode){ + var _in = inputNode.name, type = (inputNode.type || "").toLowerCase(); + if(_in && type && !inputNode.disabled){ + if(type == "radio" || type == "checkbox"){ + if(inputNode.checked){ + ret = inputNode.value; + } + }else if(inputNode.multiple){ + ret = []; + var nodes = [inputNode.firstChild]; + while(nodes.length){ + for(var node = nodes.pop(); node; node = node.nextSibling){ + if(node.nodeType == 1 && node.tagName.toLowerCase() == "option"){ + if(node.selected){ + ret.push(node.value); + } + }else{ + if(node.nextSibling){ + nodes.push(node.nextSibling); + } + if(node.firstChild){ + nodes.push(node.firstChild); + } + break; + } + } + } + }else{ + ret = inputNode.value; + } + } + } + return ret; // Object + }, + + toObject: function formToObject(/*DOMNode|String*/ formNode){ + // summary: + // Serialize a form node to a JavaScript object. + // description: + // Returns the values encoded in an HTML form as + // string properties in an object which it then returns. Disabled form + // elements, buttons, and other non-value form elements are skipped. + // Multi-select elements are returned as an array of string values. + // formNode: DOMNode|String + // example: + // This form: + // |
+ // | + // | + // | + // | + // |
+ // + // yields this object structure as the result of a call to + // formToObject(): + // + // | { + // | blah: "blah", + // | multi: [ + // | "thud", + // | "thonk" + // | ] + // | }; + + var ret = {}, elems = dom.byId(formNode).elements; + for(var i = 0, l = elems.length; i < l; ++i){ + var item = elems[i], _in = item.name, type = (item.type || "").toLowerCase(); + if(_in && type && exclude.indexOf(type) < 0 && !item.disabled){ + setValue(ret, _in, form.fieldToObject(item)); + if(type == "image"){ + ret[_in + ".x"] = ret[_in + ".y"] = ret[_in].x = ret[_in].y = 0; + } + } + } + return ret; // Object + }, + + toQuery: function formToQuery(/*DOMNode|String*/ formNode){ + // summary: + // Returns a URL-encoded string representing the form passed as either a + // node or string ID identifying the form to serialize + // formNode: DOMNode|String + // returns: String + + return ioq.objectToQuery(form.toObject(formNode)); // String + }, + + toJson: function formToJson(/*DOMNode|String*/ formNode, /*Boolean?*/ prettyPrint){ + // summary: + // Create a serialized JSON string from a form node or string + // ID identifying the form to serialize + // formNode: DOMNode|String + // prettyPrint: Boolean? + // returns: String + + return json.stringify(form.toObject(formNode), null, prettyPrint ? 4 : 0); // String + } + }; + + return form; +}); -- cgit v1.2.3