X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/25ef3491bd9ae007ff1fc2b0d7943e6eaaccf775..6e39d509471fe9b4e2660e0d1631b350d0c66f40:/src/widgets/form/BasicForm.js
diff --git a/src/widgets/form/BasicForm.js b/src/widgets/form/BasicForm.js
index 973b7c11..e195c7fd 100644
--- a/src/widgets/form/BasicForm.js
+++ b/src/widgets/form/BasicForm.js
@@ -1,5 +1,5 @@
/*!
- * Ext JS Library 3.0.3
+ * Ext JS Library 3.1.0
* Copyright(c) 2006-2009 Ext JS, LLC
* licensing@extjs.com
* http://www.extjs.com/license
@@ -40,9 +40,9 @@ Ext.form.BasicForm = function(el, config){
this.paramOrder = this.paramOrder.split(/[\s,|]/);
}
/**
- * @property items
- * A {@link Ext.util.MixedCollection MixedCollection) containing all the Ext.form.Fields in this form.
+ * A {@link Ext.util.MixedCollection MixedCollection} containing all the Ext.form.Fields in this form.
* @type MixedCollection
+ * @property items
*/
this.items = new Ext.util.MixedCollection(false, function(o){
return o.getItemId();
@@ -183,7 +183,7 @@ paramOrder: 'param1|param2|param'
* {@link #paramOrder} nullifies this configuration.
*/
paramsAsHash: false,
-
+
/**
* @cfg {String} waitTitle
* The default title to show for the waiting message box (defaults to 'Please Wait...')
@@ -634,10 +634,33 @@ myFormPanel.getForm().submit({
return Ext.urlDecode(fs);
},
- getFieldValues : function(){
- var o = {};
+ /**
+ * Retrieves the fields in the form as a set of key/value pairs, using the {@link Ext.form.Field#getValue getValue()} method.
+ * If multiple fields exist with the same name they are returned as an array.
+ * @param {Boolean} dirtyOnly (optional) True to return only fields that are dirty.
+ * @return {Object} The values in the form
+ */
+ getFieldValues : function(dirtyOnly){
+ var o = {},
+ n,
+ key,
+ val;
this.items.each(function(f){
- o[f.getName()] = f.getValue();
+ if(dirtyOnly !== true || f.isDirty()){
+ n = f.getName();
+ key = o[n];
+ val = f.getValue();
+
+ if(Ext.isDefined(key)){
+ if(Ext.isArray(key)){
+ o[n].push(val);
+ }else{
+ o[n] = [key, val];
+ }
+ }else{
+ o[n] = val;
+ }
+ }
});
return o;
},