Javascript Ext.formPanel使用“关闭”按钮复制内容
Im使用ExtJS 3.2(必须在这个版本的ExtJS中)。当我显示一个包含formpanel的面板时,一切看起来都很好,但当我从顶部按下[X]按钮关闭面板并再次打开时,每个fieldlabel显示两次,textfield消失。如果我使用“取消”按钮,则显示正确 我的代码:Javascript Ext.formPanel使用“关闭”按钮复制内容,javascript,extjs,extjs3,Javascript,Extjs,Extjs3,Im使用ExtJS 3.2(必须在这个版本的ExtJS中)。当我显示一个包含formpanel的面板时,一切看起来都很好,但当我从顶部按下[X]按钮关闭面板并再次打开时,每个fieldlabel显示两次,textfield消失。如果我使用“取消”按钮,则显示正确 我的代码: function crearDoc(idControl) { f = new Ext.FormPanel({ frame: true, id: 'f
function crearDoc(idControl) {
f = new Ext.FormPanel({
frame: true,
id: 'formFicheroCrear',
layout: 'fit',
defaults: {minWidth: 500},
items: [{
xtype : 'hidden',
id : 'idFichero'
},
{
xtype: 'panel',
layout: 'form',
id: 'formReal',
width: '100%',
items: [{xtype: 'datefield',
disabled: true,
allowBlank : false,
fieldLabel: 'Fecha',
value : new Date(),
format: 'd/m/Y',
width: '100%',
id: 'fechaDoc',
allowBlank: false},
{xtype: 'textfield',
fieldLabel: 'Titulo',
allowBlank : false,
width: '100%',
id: 'nombreDoc'},
{xtype: 'textfield',
fieldLabel: 'Descripcion',
allowBlank : false,
width: '100%',
id: 'descripcionDoc'}]
},{xtype: 'panel',
layout : 'fit',
items: [{xtype: 'htmleditor',
id: 'editorHTML',
allowBlank : false,
name: 'documentoTexto'}]
}],
buttons: [{
//Guardar documento SGSI
text: '<bean:message key="label.boton.guardarySubir"/>',
minWidth: 100,
cls : 'x-btn-text-icon',
iconCls : 'yes-icon',
listeners:{
'close':function(win){
console.info('bye');
},
'hide':function(win){
console.info('just hidden');
}
},
handler: function() {
// Comprobamos que el formulario esté OK
if (f.getForm().isValid()) {
var nombreDoc = Ext.getCmp("nombreDoc").getValue();
var descripcionDoc = Ext.getCmp("descripcionDoc").getValue();
var editorHTML = Ext.getCmp("editorHTML").getValue();
Ext.Ajax.request(
{
url: '/<bean:message key="global.application.context.name"/>/SGSI.do',
params: {"method": "crearDocumento",
"docTitulo": nombreDoc,
"docDescripcion" : descripcionDoc,
"docCuerpo" : editorHTML,
"idProyecto" : Ext.getCmp('idProyecto').getValue(),
"idControl" : idControl}
})
ventanaCrearDocumento.close()
storeDocumentos.loadData(json);
Ext.getCmp('formFichero').getForm().reset()
} else {
Ext.Msg.alert('<bean:message key="label.sincronizador.atencion"/>',
'<bean:message key="label.error.campos.rojo"/>');
}
}},
{ text : '<bean:message key="label.boton.cancelar"/>',
cls : 'x-btn-text-icon',
iconCls : 'no-icon',
minWidth: 100,
handler: function() {ventanaCrearDocumento.close()}}]
});
f.load({
url : '/<bean:message key="global.application.context.name"/>/SGSI.do',
params : {
"method" : 'dameControlPorId',
"idControl" : idControl,
"idProyecto" : Ext.getCmp('idProyecto').getValue()
},
method : 'POST'
});
var ventanaCrearDocumento = new Ext.Window({
height: 460,
width: 700,
closable: true,
closeAction : 'hide',
modal: true,
title: 'Redacción de Documento',
layout: 'fit',
items: f
});
ventanaCrearDocumento.show();
}
函数crearDoc(idControl){
f=新的Ext.FormPanel({
框架:对,
id:“formFicheroCrear”,
布局:“适合”,
默认值:{minWidth:500},
项目:[{
xtype:'隐藏',
id:“idFichero”
},
{
xtype:'面板',
布局:“表单”,
id:‘formReal’,
宽度:“100%”,
项目:[{xtype:'datefield',
残疾人:对,,
allowBlank:false,
fieldLabel:“Fecha”,
值:新日期(),
格式:“d/m/Y”,
宽度:“100%”,
id:‘fechaDoc’,
allowBlank:false},
{xtype:'textfield',
字段标签:“Titulo”,
allowBlank:false,
宽度:“100%”,
id:'nombreDoc'},
{xtype:'textfield',
fieldLabel:“Description”,
allowBlank:false,
宽度:“100%”,
id:'DescriptionDoc'}]
},{xtype:'panel',
布局:“适合”,
项目:[{xtype:'htmleditor',
id:'editorHTML',
allowBlank:false,
名称:'documentoTexto'}]
}],
按钮:[{
//瓜达尔文件公司
文本:“”,
最小宽度:100,
cls:'x-btn-text-icon',
图标:“是图标”,
听众:{
“关闭”:函数(win){
控制台信息(“再见”);
},
“隐藏”:函数(win){
console.info(“刚刚隐藏”);
}
},
处理程序:函数(){
//这是一个很好的公式
if(f.getForm().isValid()){
var nombreDoc=Ext.getCmp(“nombreDoc”).getValue();
var descripiondoc=Ext.getCmp(“descripiondoc”).getValue();
var editorHTML=Ext.getCmp(“editorHTML”).getValue();
Ext.Ajax.request(
{
url:“//SGSI.do”,
参数:{“方法”:“crearDocumento”,
“docTitulo”:nombreDoc,
“描述文件”:描述文件,
“docCuerpo”:编辑器HTML,
“idProyecto”:Ext.getCmp('idProyecto').getValue(),
“idControl”:idControl}
})
ventanaCrearDocumento.close()
加载数据(json);
Ext.getCmp('formFichero').getForm().reset()
}否则{
外部消息警报(“”,
'');
}
}},
{文本:“”,
cls:'x-btn-text-icon',
iconCls:“无图标”,
最小宽度:100,
处理程序:函数(){ventanaCrearDocumento.close()}]
});
f、 装载({
url:“//SGSI.do”,
参数:{
“方法”:“dameControlPorId”,
“idControl”:idControl,
“idProyecto”:Ext.getCmp('idProyecto').getValue()
},
方法:“发布”
});
var ventanaCrearDocumento=新的外部窗口({
身高:460,
宽度:700,
closable:是的,
closeAction:'隐藏',
莫代尔:是的,
标题:“文档检索”,
布局:“适合”,
项目:f
});
ventanaCrearDocumento.show();
}
您正在通过调用函数crearDoc(idControl)创建新的表单对象。您需要在按下“关闭”按钮时销毁它,因此设置“自动销毁”:true。
或者定义表单并将其设置为单击按钮时隐藏并显示表单。您已指定
closeAction:'hide',
,这就是它不是自动销毁的原因。
将属性指定为
close
将解决问题。我完全失明,没有看到这一点。非常感谢。这是我的荣幸。