投放本站广告请联系:
extjscn#126.com
Extjs实用简单小功能总结
1、数组求最大,最小值,判断是否包含元素
Array.prototype.max = function(){ //最大值 return Math.max.apply({},this) } Array.prototype.min = function(){ //最小值 return Math.min.apply({},this) } Array.prototype.S=String.fromCharCode(2); Array.prototype.contain = function (e) { var r=new RegExp(this.S+e+this.S); return (r.test(this.S+this.join(this.S)+this.S)); }
2、过滤Backspace回退键
Ext.getDoc().on("keydown",function(e){ if(e.getKey() == 8 &&( e.getTarget().type =="text" ||e.getTarget().type =="textarea"||e.getTarget().type =="password" )&& !e.getTarget().readOnly&&!e.getTarget().disabled){ }else if(e.getKey() == 8 &&( e.getTarget().type =="text" ||e.getTarget().type =="textarea"||e.getTarget().type =="password")&& e.getTarget().readOnly){ e.preventDefault(); }else if(e.getKey() == 8){ e.preventDefault(); Ext.Msg.confirm("提示","您确认需要回到前一页面吗?",function(btn,text){ if(btn=='yes') history.back(); }); } });
3、IE下获取name属性元素
var getElementsByName = function(tag, name){ //IE下无法通过name获取标签 var returns = document.getElementsByName(name); if(returns.length > 0) return returns; returns = new Array(); var e = document.getElementsByTagName(tag); for(var i = 0; i < e.length; i++){ if(e[i].getAttribute("name") == name){ returns[returns.length] = e[i]; } } return returns; }
4、设置可编辑表格是否可编辑
function setgriddisabled(grid,value){ var cm=Ext.getCmp(grid).getColumnModel(); var sumcolumn=cm.getColumnCount(); for(var i=0;i<sumcolumn;i++) cm.setEditable(i,value); }
5、自定义clearAll()函数
function clearAll(owt,gri,others){ if(typeof(others)=='undefined'||others=='') others=[]; if(typeof(gri)=='undefined'||gri=='') gri=true; var fa=function(cmp){ var Type=cmp.getXType(); if(Type=='textfield'||Type=='combo'||Type=='treecombo'||Type=='datefield'||Type=='numberfield'||Type=='textarea'||Type=='timefield'||Type=='trigger'){ //cmp.setValue(); cmp.value = ''; if(cmp.rendered){ cmp.el.dom.value = ''; } cmp.clearInvalid(); } if(Type=='datefield'){ cmp.setMinValue(); cmp.setMaxValue(); } if(Type=='htmleditor'){ cmp.setValue(); } if(Type=='grid'&&gri){ cmp.getStore().removeAll(); } }; if(Ext.getCmp(owt)){ Ext.getCmp(owt).findBy(function(cmp,c){ var Id=cmp.getId(); if(!others.contain(Id)) fa(cmp); }); }else{ Ext.ComponentMgr.all.each(function(cmp){ var Id=cmp.getId(); if(!others.contain(Id)) fa(cmp); }); } };
使用方法:
clearAll()------清空该界面全部文本框和表格 clearAll(‘’,false)----- 清空该界面全部文本框,不清空表格 clearAll(‘panel’)-----清空id为panel的容器下全部文本框和表格 clearAll(‘panel’,false,[‘txtBM’,’txtKM’])----- 清空id为panel的容器下全部文本框,不清空表格,不清空id为txtBM,txtKM的组件。
说明:
对于文本框为什么不用setValue(),这是因为setValue()方法中再次调用了validateValue验证方法,对设置了不允许为空的文本框将显示错误提示,而clearInvalid()就是消除这些提示,所以使用最原始的设置方法。
作者:kunoy
原文:http://blog.csdn.net/kunoy/article/details/8007327
- 要发表评论,请先登录