X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..10a866c12701c0a0afd0ac85dcdcf32a421514ac:/docs/source/BasicForm.html diff --git a/docs/source/BasicForm.html b/docs/source/BasicForm.html index 66605289..36d4c003 100644 --- a/docs/source/BasicForm.html +++ b/docs/source/BasicForm.html @@ -1,5 +1,6 @@
+Note: When using standardSubmit, the options to {@link #submit} are ignored because Ext's - * Ajax infrastracture is bypassed. To pass extra parameters (baseParams and params), you will need to - * create hidden fields within the form.
- *The url config option is also bypassed, so set the action as well:
- *
-PANEL.getForm().getEl().dom.action = 'URL'
- *
- * An example encapsulating the above:
+ * @cfg {Boolean} standardSubmit
+ * If set to true, standard HTML form submits are used instead + * of XHR (Ajax) style form submissions. Defaults to false.
+ *Note: When using standardSubmit
, the
+ * options
to {@link #submit}
are ignored because
+ * Ext's Ajax infrastracture is bypassed. To pass extra parameters (e.g.
+ * baseParams
and params
), utilize hidden fields
+ * to submit extra data, for example:
new Ext.FormPanel({
standardSubmit: true,
baseParams: {
foo: 'bar'
},
- url: 'myProcess.php',
+ {@link url}: 'myProcess.php',
items: [{
xtype: 'textfield',
name: 'userName'
@@ -220,21 +224,25 @@ new Ext.FormPanel({
buttons: [{
text: 'Save',
handler: function(){
- var O = this.ownerCt;
- if (O.getForm().isValid()) {
- if (O.url)
- O.getForm().getEl().dom.action = O.url;
- if (O.baseParams) {
- for (i in O.baseParams) {
- O.add({
+ var fp = this.ownerCt.ownerCt,
+ form = fp.getForm();
+ if (form.isValid()) {
+ // check if there are baseParams and if
+ // hiddent items have been added already
+ if (fp.baseParams && !fp.paramsAdded) {
+ // add hidden items for all baseParams
+ for (i in fp.baseParams) {
+ fp.add({
xtype: 'hidden',
name: i,
- value: O.baseParams[i]
- })
+ value: fp.baseParams[i]
+ });
}
- O.doLayout();
+ fp.doLayout();
+ // set a custom flag to prevent re-adding
+ fp.paramsAdded = true;
}
- O.getForm().submit();
+ form.{@link #submit}();
}
}
}]
@@ -431,7 +439,11 @@ myFormPanel.getForm().submit({
if(this.standardSubmit){
var v = this.isValid();
if(v){
- this.el.dom.submit();
+ var el = this.el.dom;
+ if(this.url && Ext.isEmpty(el.action)){
+ el.action = this.url;
+ }
+ el.submit();
}
return v;
}
@@ -491,7 +503,7 @@ myFormPanel.getForm().submit({
this.waitMsgTarget = Ext.get(this.waitMsgTarget);
this.waitMsgTarget.mask(o.waitMsg, 'x-mask-loading');
}else{
- Ext.MessageBox.wait(o.waitMsg, o.waitTitle || this.waitTitle || 'Please Wait...');
+ Ext.MessageBox.wait(o.waitMsg, o.waitTitle || this.waitTitle);
}
}
},
@@ -624,10 +636,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;
},