extjs的textfield禁止输入某些字符

http://sny7.iteye.com/blog/343110
 
这个问题困扰了我整整一天,之前使用网上的重写textfield添加侦听,然后处理keypress事件(http://extjs.com/forum/showthread.php?t=17532),结果发现效果不甚理想,而且需要在公共js中写一段代码,各自的textfield中同样也需要写一段代码。最后参考了numberfield源码,才很好的解决了这个问题:
 
Js代码 复制代码  收藏代码
  1. initEvents : function() {   
  2.     var keyPress = function(e){   
  3.         var blockchars = ' ';   
  4.         var c = e.getCharCode();   
  5.         if(blockchars.indexOf(String.fromCharCode(c)) != -1){   
  6.             e.stopEvent();   
  7.         }   
  8.     };   
  9.     this.el.on("keypress", keyPress, this);   
  10. }  
initEvents : function() {
	var keyPress = function(e){
		var blockchars = ' ';
		var c = e.getCharCode();
		if(blockchars.indexOf(String.fromCharCode(c)) != -1){
			e.stopEvent();
		}
	};
	this.el.on("keypress", keyPress, this);
}
 
这段代码放到textfield的配置里面就可以了。回头可以考虑继承或者重写一下textfield,直接在它的配置里面设置blockchars就可以了。
 
另外,blockchars就是屏蔽的字符集合,上例中屏蔽的是空格。
 

你可能感兴趣的:(ExtJs,textfield)