X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..6b044c28b5f26fb99c86c237ffad19741c0f7f3d:/docs/source/BasicForm.html?ds=sidebyside diff --git a/docs/source/BasicForm.html b/docs/source/BasicForm.html index 8501d05a..6909e49b 100644 --- a/docs/source/BasicForm.html +++ b/docs/source/BasicForm.html @@ -1,12 +1,18 @@ - -
- -/** + + + ++ \ No newline at end of fileThe source code + + + + +/*! + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license + */ +/** * @class Ext.form.BasicForm * @extends Ext.util.Observable *- +Ext.BasicForm = Ext.form.BasicForm; +Encapsulates the DOM <form> element at the heart of the {@link Ext.form.FormPanel FormPanel} class, and provides @@ -37,7 +43,7 @@ * @param {Object} config Configuration options */ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { - + constructor: function(el, config){ Ext.apply(this, config); if(Ext.isString(this.paramOrder)){ @@ -78,9 +84,9 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { if(el){ this.initEl(el); } - Ext.form.BasicForm.superclass.constructor.call(this); + Ext.form.BasicForm.superclass.constructor.call(this); }, - +
/** * @cfg {String} method * The request method to use (GET or POST) for form actions if one isn't supplied in the action options. @@ -186,7 +192,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...') @@ -280,15 +286,20 @@ new Ext.FormPanel({ e.stopEvent(); }, - // private - destroy: function() { - this.items.each(function(f){ - Ext.destroy(f); - }); - if(this.el){ - this.el.removeAllListeners(); - this.el.remove(); + /** + * Destroys this object. + * @private + * @param {Boolean} bound true if the object is bound to a form panel. If this is the case + * the FormPanel will take care of destroying certain things, so we're just doubling up. + */ + destroy: function(bound){ + if(bound !== true){ + this.items.each(function(f){ + Ext.destroy(f); + }); + Ext.destroy(this.el); } + this.items.clear(); this.purgeListeners(); }, @@ -437,8 +448,9 @@ myFormPanel.getForm().submit({ * @return {BasicForm} this */ submit : function(options){ + options = options || {}; if(this.standardSubmit){ - var v = this.isValid(); + var v = options.clientValidation === false || this.isValid(); if(v){ var el = this.el.dom; if(this.url && Ext.isEmpty(el.action)){ @@ -471,11 +483,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(); @@ -496,6 +519,12 @@ myFormPanel.getForm().submit({ // private beforeAction : function(action){ + // Call HtmlEditor's syncValue before actions + this.items.each(function(f){ + if(f.isFormField && f.syncValue){ + f.syncValue(); + } + }); var o = action.options; if(o.waitMsg){ if(this.waitMsgTarget === true){ @@ -541,15 +570,25 @@ myFormPanel.getForm().submit({ * {@link Ext.grid.Column#dataIndex dataIndex}, {@link Ext.form.Field#getName name or hiddenName}). * @return Field */ - findField : function(id){ + findField : function(id) { var field = this.items.get(id); - if(!Ext.isObject(field)){ - this.items.each(function(f){ - if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){ - field = f; - return false; + + if (!Ext.isObject(field)) { + //searches for the field corresponding to the given id. Used recursively for composite fields + var findMatchingField = function(f) { + if (f.isFormField) { + if (f.dataIndex == id || f.id == id || f.getName() == id) { + field = f; + return false; + } else if (f.isComposite) { + return f.items.each(findMatchingField); + } else if (f instanceof Ext.form.CheckboxGroup && f.rendered) { + return f.eachItem(findMatchingField); + } } - }); + }; + + this.items.each(findMatchingField); } return field || null; }, @@ -561,7 +600,7 @@ myFormPanel.getForm().submit({ * @return {BasicForm} this */ markInvalid : function(errors){ - if(Ext.isArray(errors)){ + if (Ext.isArray(errors)) { for(var i = 0, len = errors.length; i < len; i++){ var fieldError = errors[i]; var f = this.findField(fieldError.id); @@ -569,7 +608,7 @@ myFormPanel.getForm().submit({ f.markInvalid(fieldError.msg); } } - }else{ + } else { var field, id; for(id in errors){ if(!Ext.isFunction(errors[id]) && (field = this.findField(id))){ @@ -577,6 +616,7 @@ myFormPanel.getForm().submit({ } } } + return this; }, @@ -648,12 +688,12 @@ myFormPanel.getForm().submit({ n, key, val; - this.items.each(function(f){ - if(dirtyOnly !== true || f.isDirty()){ + this.items.each(function(f) { + if (!f.disabled && (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); @@ -708,7 +748,6 @@ myFormPanel.getForm().submit({ return this; }, - /** * Removes a field from the items collection (does NOT remove its markup). * @param {Field} field @@ -719,6 +758,13 @@ myFormPanel.getForm().submit({ return this; }, + /** + * Removes all fields from the collection that have been destroyed. + */ + cleanDestroyed : function() { + this.items.filterBy(function(o) { return !!o.isDestroyed; }).each(this.remove, this); + }, + /** * Iterates through the {@link Ext.form.Field Field}s which have been {@link #add add}ed to this BasicForm, * checks them for an id attribute, and calls {@link Ext.form.Field#applyToMarkup} on the existing dom element with that id. @@ -769,6 +815,7 @@ myFormPanel.getForm().submit({ }); // back compat -Ext.BasicForm = Ext.form.BasicForm;