X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/b37ceabb82336ee82757cd32efe353cfab8ec267..0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6:/src/widgets/form/BasicForm.js diff --git a/src/widgets/form/BasicForm.js b/src/widgets/form/BasicForm.js index a18cdbab..2de46148 100644 --- a/src/widgets/form/BasicForm.js +++ b/src/widgets/form/BasicForm.js @@ -1,8 +1,8 @@ /*! - * Ext JS Library 3.2.2 - * Copyright(c) 2006-2010 Ext JS, Inc. - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ /** * @class Ext.form.BasicForm @@ -475,11 +475,22 @@ myFormPanel.getForm().submit({ */ updateRecord : function(record){ record.beginEdit(); - var fs = record.fields; + var fs = record.fields, + field, + value; fs.each(function(f){ - var field = this.findField(f.name); + field = this.findField(f.name); if(field){ - record.set(f.name, field.getValue()); + value = field.getValue(); + if (typeof value != undefined && value.getGroupValue) { + value = value.getGroupValue(); + } else if ( field.eachItem ) { + value = []; + field.eachItem(function(item){ + value.push(item.getValue()); + }); + } + record.set(f.name, value); } }, this); record.endEdit(); @@ -561,8 +572,10 @@ myFormPanel.getForm().submit({ if (f.dataIndex == id || f.id == id || f.getName() == id) { field = f; return false; - } else if (f.isComposite && f.rendered) { + } else if (f.isComposite) { return f.items.each(findMatchingField); + } else if (f instanceof Ext.form.CheckboxGroup && f.rendered) { + return f.eachItem(findMatchingField); } } }; @@ -668,7 +681,7 @@ myFormPanel.getForm().submit({ key, val; this.items.each(function(f) { - if (dirtyOnly !== true || f.isDirty()) { + if (!f.disabled && (dirtyOnly !== true || f.isDirty())) { n = f.getName(); key = o[n]; val = f.getValue();