遍历Ext web页面所有的文本框

最近一直用ext做的web页面,为了验证页面中所有文本框输入的数据是否含有特殊字符。

解决方法(1):其实可以直接屏蔽掉特殊字符,不让用户输入。这样也就无所谓检测了。

解决方法(2):遍历整个web页面的所有文本框,对其值进行判断,并返回结果。

  具体过程:

  

 1 /****************************特殊字符校验时处理*********************************/
2 function CheckSpecialWords() {
3 var RetvalStr = "";
4 try {
5 Ext.each(Ext.query("*[type=text]"), function(item) {
6 if (item.value != "") {
7 if (item.getAttribute("SpecialWorkCheck") != null) {
8 if (!CheckSpecialWord(item.value)) {
9 RetvalStr += item.getAttribute("SpecialWorkCheck") + ",";
10 }
11 }
12
13 }
14 });

  第5行是检索页面中所有“type=text”的控件。在此用到Ext.query()获取一个js数组,而不是用Ext.select()。因为slelect方法是返回一个ext的对象。

  在这个检索条件获取的所有控件包含文本框、下拉列表、和日期控件,实际上只需要获取所有的文本框就可以了。但是好像没有什么好的判断条件来区别它们的不同。

  第7行判断属性“SpecialWorkCheck”是否存在。该属性是在做web页面时,对每个需要特殊字符验证的控件所添加的。它的值为当前控件的"label"(实际上,在用Ext.query()获取到控件时,它是没有label属性的)。

  第8行是验证特殊字符的方法。

  第9行则返回所有包含特殊字符的文本框的"label"值。

 

  在获取页面控件时曾经遇到一个问题。如果web页面存在tab,在页面初始加载完成后。直接点击“保存”触发上面的js方法,结果调试时发现只获取了当前active-tab 的控件,而没有获取其它tab的控件。而实际上如果其它tab没有激活,那么对它进行特殊字符验证也是没有必要的。

posted @ 2011-08-18 16:26  小凡(loveok_56)  阅读(1793)  评论(0编辑  收藏  举报