ExtJs 2.0 通过Ext.form.BasicForm提交时,要注意的细节!

  当form表单不是通过Ext自带的组件构成,而是由Html构成:

              <DIV ID="FORM_ID">
                    <FORM ID="ADD">
                        ....
                    </FORM>
              </DIV>
 
              new Ext.Panel({
                    ....
                    contentEl:'FORM_ID',
                    ....
                    buttons:[
                        {text:'保存',handler:add},
                        {text:'返回',handler:function(){
                                window.history.go(-1);
                        }}
                    ]
              });
 
              function add () {
 
                      var f = Ext.form.BasicForm('ADD',{
                            method:'post',
                            fileUpload:true//如果是上传,一定要配置这个属性,在html中无需加enctype="multipart/form-data"
                      });
 
                      f.submit({
                          method:'post',
                           url:'newsAction_add.action',
                          success:function(form,action) {
                          },
                          failure:function(form,action){
                          }
                      });
 
            }
 
            PS:在Html中,form元素内不能存在div,否则无法获得需要提交的参数,也就是说div元素不能出现在form元素集合内.
                  因为在new的一个panel里面导入的dom元素是从你给的id作为根去遍历的 (contentEl属性最好只指向div元素) ,
                  div如果在form里面,那就跟没有form元素一样,而basicForm接受的form元素的id后,会掉用getCmp()方法去
                  Panel容器里面找,这样就无法获得表单中的参数.
                   (如果还是无法获得参数,就需要在basicForm里面加上fileUpload=true.)

你可能感兴趣的:(JavaScript)