最近开始接触ExtJs,在做数据提交和修改的时候老是使用两个表单感觉很别扭,于是在网上查了如何共用表单,最后没有搜索到满意的答案,不过还是实现了,只是我的方法有点笨拙,如果大家有更好的办法,希望赐教
//定义操作名称和表单提交的URL var opName='add'; var opUrl='addPlanGroup'; //定义提交数据的表单 var pgAddForm=new Ext.form.FormPanel({ id:'pgAddForm', bodyStyle:'padding:5px', labelWidth:80, defaults:{anchor:"95%"}, baseCls:"x-plain", items:[{ xtype : "textfield", fieldLabel: '计划组编号', emptyText:'请输入计划组编号', name:'planGroupCode', allowBlank:false, validator:function(value){ if(value.length>0){ return true; }else{ return "请输入计划组编号!"; } } }, { xtype : "textfield", fieldLabel: '计划组名称', emptyText:'请输入计划组名称', name:'planGroupName', allowBlank:false, validator:function(value){ if(value.length>0){ return true; }else{ return "计划组名称!"; } } }, { xtype : 'combo', fieldLabel:'计划组类型', name:'planGroupType', hiddenName:"planGroupTypeValue", emptyText:"请选择...", mode :"local", valueField:"paraValue", displayField:"remark", editable:false, triggerAction:"all", allowBlank:false, store:pgTypeStore }] }); //定义装载表单的窗体 var pgAddWindow = new Ext.Window( { id : 'pgAdd-window', title:'创建新计划组', plain : true, width : 460, autoScroll : true, modal : true, items : [pgAddForm], closeAction : "hide", buttons : [{ text : "确 定", handler : function() { if(opName=='add'){ opUrl='addPlanGroup'; }else{ opUrl='updatePlanGroup'; } var base_account_form = Ext.getCmp('pgAddForm').getForm('planGroupName'); if (!base_account_form.isValid()) {return;} else { pgAddForm.getForm().doAction("submit", { url : opUrl, method : 'post', timeout : 10000, waitTitle : '请稍等……', waitMsg : '提交中……', success : function(form,action) { var json = action.result; checkAjaxSessionTimeOut(json); if (json.messagecode=="0"){ showResult(); //弹出层 Pause(this,sleep_time);//调用暂停函数 this.NextStep=function(){ //暂停后执行的代码 salecatalogTree.root.reload(); salecatalogTree.expandAll(); Ext.getCmp("pgAdd-window").hide(); base_account_form.reset(); }; } else { Ext.Msg.alert('消息', "操作失败:"+json.obj); } }, failure : function(form,action) { Ext.Msg.alert('消息',"操作失败!"); Ext.getCmp("pgAdd-window").hide(); } }); } } }, {text : "取 消", handler : function() { Ext.getCmp("pgAdd-window").hide(); } }] }); //树状结构菜单中的添加和修改操作 { text : ' 添加新计划组', hide:true, //增加菜单点击事件 handler:function (node){ if(salecatalogTree.getSelectionModel().getSelectedNode().id!='1'){ Ext.Msg.alert("系统提示","计划组之间目前未关联!"); return; } Ext.getCmp('pgAddForm').getForm().reset(); Ext.getCmp('pgAddForm').getForm().getEl().dom.reset();//重置表单中所有组件,包括组件的属性 Ext.getCmp('pgAddForm').getForm().findField('planGroupCode').editable=true; Ext.getCmp("pgAdd-window").setTitle('添加新计划组'); opName='add'; Ext.getCmp("pgAdd-window").show(); } }, { id:'editrMenu', text : '修改计划组信息', //修改菜单点击事件 handler:function (node){ Ext.getCmp('pgAddForm').getForm().reset(); Ext.getCmp("pgAdd-window").setTitle('修改计划组信息'); Ext.getCmp('pgAddForm').getForm().findField('planGroupCode').setValue(salecatalogTree.getSelectionModel().getSelectedNode().id); Ext.getCmp('pgAddForm').getForm().findField('planGroupCode').editable=false; Ext.getCmp('pgAddForm').getForm().findField('planGroupName').setValue(salecatalogTree.getSelectionModel().getSelectedNode().text); opName='update'; Ext.getCmp("pgAdd-window").show(); }