PDA

View Full Version : getForm() problem with window xtype form



rafaelrp
31 May 2012, 5:14 PM
Hello !

I have this window, but i can't get the function getForm() i need to submit.


Ext.create('Ext.window.Window', {
title : 'Cadastro de Grupos',
xtype : 'form',
layout : 'form',
id : 'usuarioPermissaoGrupoForm',
url : 'permissoes/configurar_permissoes/ajax/usuarioPermissaoGrupoSubmit.php',
width : 400,
items : [{
defaultType : 'textfield',
xtype : 'fieldset',
border : false,
//title : 'Manutenção de Grupos',
layout : 'anchor',
id : 'fieldsetCadGrupo',
defaults : {
anchor: '100%'
},
items: [
{
xtype : 'hiddenfield',
name : 'grupo',
id : 'grupo',
value : idGrupo
},
{
xtype : 'combo',
id : 'usuarioPermissaoGrupoPaiCombo',
fieldLabel : 'Grupo Pai',
displayField : 'nome',
valueField : 'grupo',
name : 'grupo_pai',
store : storeUsuarioPermissaoMODULOSCAD,
forceselection : true,
queryMode : 'local',
typeAhead : true,
allowBlank : false,
autoSelect : true
},

//usuarioPermissaoGrupoPaiCombo,


{
fieldLabel: 'Nome',
name: 'nome',
allowBlank:false
}
]
}],
bbar: [
{
text: 'Salvar',
iconCls: 'save',
handler: function(){
var form = this.up('form').getForm();

/*if(this.up('form').getForm().isValid()){
var activeForm = this.up('form').getForm();
activeForm.submit({
submitEmptyText: false,
waitMsg: 'Salvando...',
success: function(fp, jsonStatus){
if(jsonStatus.result.success==true){
Ext.Msg.alert('Successo', 'Registro salvo com sucesso!');
activeForm.reset();
}else
Ext.Msg.alert('Atenção', 'Ocorreu um problema. Registro não salvo!' + jsonStatus.result.msgRetorno);
},
failure: function(fp, o){
Ext.Msg.alert('Atenção', 'Ocorreu um problema. Registro não salvo!'+ o.result.msgRetorno);
}
});
}*/
}
},
'-',
{
text: 'Cancelar',
iconCls: 'cancel',
handler: function(){
Ext.getCmp('usuarioPermissaoGrupoForm').destroy();
}
}
]
//bbar: getFormControl(true,'treeUsuarioListaPermissaoGrupos','idTreeGRUPOS')
}).show();



var form = this.up('form').getForm();

error:


Uncaught TypeError: Cannot call method 'getForm' of undefined


Thx! ~o)

Tim Toady
31 May 2012, 6:40 PM
You need to nest a form within the window. Right now you have an xtype for form on your window.

sword-it
1 Jun 2012, 1:45 AM
Hi rafaelrap,

Here is a sample code to create a form under window..



Ext.create('Ext.window.Window', {
title: 'Cadastro de Grupos',
width: 400,
height:200,
items: [{
xtype:'form',
border:false,
items: [
{
xtype: 'hiddenfield',
name: 'grupo'
},
{
fieldLabel: 'Nome',
name: 'nome',
allowBlank: false
}
]
}],
bbar: [
{
text: 'save',
handler: function() {
var form = this.up('window').down('form').getForm();
..............
.........
}},
'-',
{
text: 'Cancelar',
iconCls: 'cancel',
handler: function() {
Ext.getCmp('usuarioPermissaoGrupoForm').destroy();
}}
]

}).show();

rafaelrp
1 Jun 2012, 4:23 AM
Hi rafaelrap,

Here is a sample code to create a form under window..



Ext.create('Ext.window.Window', {
title: 'Cadastro de Grupos',
width: 400,
height:200,
items: [{
xtype:'form',
border:false,
items: [
{
xtype: 'hiddenfield',
name: 'grupo'
},
{
fieldLabel: 'Nome',
name: 'nome',
allowBlank: false
}
]
}],
bbar: [
{
text: 'save',
handler: function() {
var form = this.up('window').down('form').getForm();
..............
.........
}},
'-',
{
text: 'Cancelar',
iconCls: 'cancel',
handler: function() {
Ext.getCmp('usuarioPermissaoGrupoForm').destroy();
}}
]

}).show();



I do that but the form only shows the first item, only shows the combo not the text field...



Ext.create('Ext.window.Window', {
title: 'Cadastro de Grupos',
width: 400,
height:200,
items: [{
xtype:'form',
border:false,
items: [
{
xtype : 'hiddenfield',
name : 'grupo',
id : 'grupo',
value : idGrupo
},
{
xtype : 'combo',
id : 'usuarioPermissaoGrupoPaiCombo',
fieldLabel : 'Grupo Pai',
displayField : 'nome',
valueField : 'grupo',
name : 'grupo_pai',
store : storeUsuarioPermissaoMODULOSCAD,
forceselection : true,
queryMode : 'local',
typeAhead : true,
allowBlank : false,
autoSelect : true
},
{
fieldLabel: 'Nome',
name: 'nome',
allowBlank:false
}
]
}],
bbar: [
{
text: 'Salvar',
iconCls: 'save',
handler: function(){
var form = this.up('form').getForm();

/*if(this.up('form').getForm().isValid()){
var activeForm = this.up('form').getForm();
activeForm.submit({
submitEmptyText: false,
waitMsg: 'Salvando...',
success: function(fp, jsonStatus){
if(jsonStatus.result.success==true){
Ext.Msg.alert('Successo', 'Registro salvo com sucesso!');
activeForm.reset();
}else
Ext.Msg.alert('Atenção', 'Ocorreu um problema. Registro não salvo!' + jsonStatus.result.msgRetorno);
},
failure: function(fp, o){
Ext.Msg.alert('Atenção', 'Ocorreu um problema. Registro não salvo!'+ o.result.msgRetorno);
}
});
}*/
}
},
'-',
{
text: 'Cancelar',
iconCls: 'cancel',
handler: function(){
Ext.getCmp('usuarioPermissaoGrupoForm').destroy();
}
}
]
//bbar: getFormControl(true,'treeUsuarioListaPermissaoGrupos','idTreeGRUPOS')
}).show();

rafaelrp
1 Jun 2012, 4:33 AM
I forgot to put the xtype: textField

now works
Thx ! ~o)