当前位置: 代码迷 >> JavaScript >> exjs之表单交付
  详细解决方案

exjs之表单交付

热度:299   发布时间:2012-08-16 12:02:15.0
exjs之表单提交
 addRuleFrom=Ext.create('Ext.form.Panel', {
    region:'center',         //放置的位置
    id:'addRuleForm_br',
       bodyPadding: 5,
       width: 350,
       validateOnchange:false,
       // The form will submit an AJAX request to this URL when submitted
       url: 'rule/addRule.action',   //表单提交的路径
       column:2,
       // Fields will be arranged vertically, stretched to full width
       layout: 'anchor',
       defaults: {
           anchor: '100%'
//            msgTarget:'title'   //设置错误提示信息的样式
           

       },

表单提交成功和Ajax请求成功后需要明确的返回{success:true}



       // The fields
       defaultType: 'textfield',
       items: [{
           fieldLabel: 'unitId',
           name: 'unitId',    //后台可用request.getParmas方法获取参数
           id:'unitId_Add',
           hidden:true,    //设置为true表示隐藏
           allowBlank: true  //是否为不为必填
       },{
           fieldLabel: '规则编号',
           name: 'code',    //后台可用request.getParmas方法获取参数
           maxLength : 25,//允许输入的最大字符数2 
           maxLengthText : "最大长度不能超过25个字符!",//提示文本3 
           minLength : 1, //允许输入的最少字符数4 
           minLengthText : "最小长度不能少于1个字符!",//提示文本
           allowBlank: false  //是否为不为必填
       },{
       //vtype:'phone',             //vtype是用来做表单验证的
           xtype : 'textareafield',
           id:'description_rule',
           fieldLabel: '规则描述',
           maxLength : 100,//允许输入的最大字符数2 
           maxLengthText : "最大长度不能超过100个字符!",//提示文本3 
           minLength : 1, //允许输入的最少字符数4 
           minLengthText : "最小长度不能少于1个字符!",//提示文本
           name: 'description',    //后台可用request.getParmas方法获取参数
           allowBlank: false  //是否为不为必填
       },{ 
       
       xtype:'combo',//多选框案例
       allowBlank: false,
       //autoSelect:true,
           listConfig:{
            emptyText:'未找到匹配值',
           
            loadingText:'正在加载...',
            maxHeight:100
           },
            name:'type',
            fieldLabel:'规则类型',
            triggerAction:'all',
            store:ruleTypeStore,
           
            displayField:'name',
            valueField:'id',//提交的值
            queryDelay:300,  //查询延迟时间
            editable:false,
//             readOnly:true,
            //value:'type',
            queryMode:'remote',   //'remote'为远程模式
            forceSelection:true,  //表示必须是列表中存在的值
            typeAhead:true  //允许自动选择匹配部分
           
           }
       ],
       buttons: [{
           text: '取消',
           handler: function() {
//                this.up('form').getForm().reset(); 重置的动作
           brUnitRuleGrid.addRuleWindow.close();
           }
       }, {
           text: '确定',
           formBind: true, //only enabled once the form is valid
           disabled: true,
           handler: function submit(){
           var brUnitId = Ext.getCmp('brUtinTabPanel_br').selectBrUnitId;


           var form = addRuleFrom.getForm();  //可以获得form实例
//            var form = this.up('form').getForm();
          
           form.findField('unitId').setValue(brUnitId); //form可以根据name查找表单标签,并设置值
           
//            if (form.isValid()) {
//             form.submit({
//                    success: function(form, action) {
//                    
//                     brUnitRuleGrid.addRuleWindow.close();   //表单提交完以后关闭窗口
//                     brUnitRuleGridStore.load();                   //列表显示的数据重新load
//                    
//                    },
//                    failure: function(form, action) {
//                    
//                     alert("添加失败");
//                    }
//                });

//           }



表单的回填:

var loadRuleEdit = function(id){
// var params = editRuleForm.getForm().getValues();  可以获得表单里的数据
editRuleForm.getForm().load({
url:'rule/loadRule.action',
params:{id:id},
method:'post',
success:function(form,action){
},
failure: function(form, action) {
BusinessCommon.showMessageBox({type:'error',msg:action.result.failMesg,title:'失败'});
        }
});

};


调用form.load()方法可以回填数据,返回json对应表单的name属性