PDA

View Full Version : Ayuda, al validar formulario origina error: this.dom is undefined



vigilia_
2 May 2011, 4:54 PM
Hola, tengo un formulario en el cual al reallizar la selección en el combo debe mostrar una caja de texto o un combo, el proceso de cambio se realiza bien; el inconveniente es que luego de realizar el cambio y seleccionar validar formulario este origina el error this.dom is undefined.

El código es el siguiente:



<div id="tabs1"> Cambio
<div id="script" >
<div style="margin-left:4px; margin-top:7px; margin-right:30px;" id="contiene"></div>
</div>
</div>

<script>
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
cit = {};

cit.storeListaTipoAux = new Ext.data.SimpleStore({
fields: ['aut_id', 'state'],
data :[ ['A', 'Alumno'],['006', 'Banco'],['004', 'Centro de Costo'],['002', 'Cliente'],['003', 'Cliente & Proveedor'],['O', 'Otros'],['005', 'Personal'],['007', 'Postulante'],['001', 'Proveedor']]
})

cit.storeListaAuxiliar = new Ext.data.SimpleStore({
fields: ['aux_id', 'aux_razonso'],
data:[
['001','Auxiliar1'],
['002','Auxiliar2'],
['003','Auxiliar3'],
['004','Auxiliar4']
]
})

cit.storeListaAlumno = new Ext.data.SimpleStore({
fields: ['al_id', 'al_desc'],
data:[
['2011001','AA AA AA'],
['2011002','BB BB BB'],
['2011003','CC CC CC'],
['2011004','DD DD DD']
]
})


cit.changeField = function (usuario) {
//alert(Ext.type(Ext.getCmp('cbal_id'))+'>>'+Ext.type(Ext.getCmp('txpa_alumno'))+'>>'+Ext.type(Ext.getCmp('cbaut_id')));
if (Ext.isObject(Ext.getCmp('cbal_id'))) {cit.vField = Ext.getCmp('cbal_id');}
if (Ext.isObject(Ext.getCmp('txpa_alumno'))) {cit.vField = Ext.getCmp('txpa_alumno');}
if (Ext.isObject(Ext.getCmp('cbaut_id'))) {cit.vField = Ext.getCmp('cbaut_id');}

cit.vOwner = cit.vField.ownerCt;
//alert('remove');
cit.vIndex = cit.vOwner.items.indexOf(cit.vField);
cit.vOwner.remove(cit.vField);


//alert('destroy');
//cit.vField.destroy();
//cit.vOwner.doLayout();

switch (usuario){
case 'O':
cit.vField = new Ext.form.TextField ({width:265,name:'pa_alumno',hiddenName:'pa_alumno', disabled:false, id:'txpa_alumno', allowBlank:false
,autoCreate: {tag: "input", type: "text", autocomplete: "off", maxlength: 128}});
break;
case 'A':
cit.vField = new Ext.form.ComboBox({width:265,mode:'local',triggerAction:'all',forceSelection:true,editable:true,name:'al_id',emptyText:'- Alumno -'
,hiddenName:'al_id',displayField:'al_desc',valueField:'al_id',store: cit.storeListaAlumno,allowBlank:false,minListWidth:'380', id:'cbal_id'});
break;
default : //'aux_id', 'aux_razonso'
cit.vField = new Ext.form.ComboBox({width:265,mode:'local',triggerAction:'all',forceSelection:true,editable:true,name:'aux_id',emptyText:'- Acreedor -'
,hiddenName:'aux_id',displayField:'aux_razonso',valueField:'aux_id',store: cit.storeListaAuxiliar,allowBlank:false,minListWidth:'380', id:'cbaut_id'});
break;
}
//alert('insert');
cit.vOwner.insert(cit.vIndex, cit.vField);
//alert('dolayout');
cit.vOwner.doLayout();
//cit.formParamFiltro.doLayout();
}

cit.eventAutid = {
select: function(combo, record, index){
cit.changeField(record.data.aut_id)
}
};

cit.formParamFiltro = new Ext.form.FormPanel({
renderTo: 'contiene'
,name:'formDcto'
,autoHeight:true
,bodyStyle:'border:0px'
,width:'100%'
,border: false
,defaults:{anchor:0}
,items : [
{ xtype:'compositefield',fieldLabel:'Acreedor',combineErrors:false,
items: [
{ xtype:'combo', width:140,mode:'local',triggerAction:'all',forceSelection:true,editable:false,name:'aut_id',emptyText:'- Usuario -'
,hiddenName:'aut_id',displayField:'state',valueField:'aut_id',store: cit.storeListaTipoAux
,listeners: cit.eventAutid, value:'O', minListWidth:130,id:'aut_id',allowBlank:false}
,{ xtype:'displayfield',value:'Nombre:',width:80,style:'padding-top:+2px;padding-left:+15px'}
//,{ xtype:'hidden'}
,{ xtype:'textfield',width:265,name:'pa_alumno',hiddenName:'pa_alumno', disabled:false, allowBlank:false
,autoCreate: {tag: "input", type: "text", autocomplete: "off", maxlength: 128}, id:'txpa_alumno'}
]
}
]
,bbar:[
{text:'Validar formulario'
,handler: function(){
alert(cit.formParamFiltro.form.isValid());
}
}
]

})
</script>
Gracias por la ayuda que puedan brindarme.