日期:2014-05-16  浏览次数:20310 次

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.)