guojian3021886 发表于 2013-2-7 15:26:34

EXTJS FORM技巧

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://sunhuang.blogbus.com/logs/36463408.html

Q:如何使表单不使用AJAX方式提交?   
A:给form加上以下配置
http://www.cnblogs.com/Images/OutliningIndicators/None.gifonSubmit: Ext.emptyFn,   
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif        submit:function() {   
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif this.getForm().getEl().dom.action = this.url;   
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif this.getForm().getEl().dom.submit();   
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif            },
因为EXTJS的BUTTON就算指定了TYPE为SUBMIT也不能提交,所以,对于需要提交的按钮,要加上事件处理函数:
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gifhandler:function(){   
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif                form1.submit();            
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif            }
这样,表单就会以普通方式提交了.   
Q:如何为表单加上Reset重置按钮?   
A:虽然你可以将BUTTON的TYPE改为RESET,但是,实际上,还是要你自己处理复位.下面的代码可以复位表单
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gifhandler:function() {   
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif                form1.form.reset();   
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif            }
注意,要把这里的form1改为你的formpanel名称,这里很变态的一点就是,对于submit按钮,我们可以用form1.submit(),但是reset按钮,竟然无法用form1,reset,竟然要用form1.form.reset(),太不可思议了
Q:如何在表单提交前进行统一验证?   
A:这个问题,我也曾苦恼过,查了EXTJS的FORUM才解决   
首先,要将提交按钮和FORM绑定,在BUTTON配置中加以下内容:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifformBind:true,
然后,在FORM中要加以下配置:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifmonitorValid:true,
这样,提交按钮就与表单的验证绑在一起了,只有全部验证通过时,表单提交按钮才是enable的,否则,该按钮不可以点击   
虽然解决了问题,但是,却不是很灵活,希望下一版能改进吧.   
Q:为何传给GRID的XML数据显示不出来?   
A:Grid的XML数据,除了必须是普通的XML文件外,还有一个潜在的解析要求,那就是至少要有根节点,表节点和记录节点这三级   
否则,将显示不出数据,但不会报错   
Q:为何动态传递ASP生成的XML数据给GRID却显示不出来?   
A:普通XML作为GRID数据能显示,而ASP生成的却不行,原因是ASP生成的XML在生成时没有指明Content-Type,只要在代码开始加上:Response.contentType="text/xml"即可
页: [1]
查看完整版本: EXTJS FORM技巧