这个问题困扰了我整整一天,之前使用网上的重写textfield添加侦听,然后处理keypress事件(http://extjs.com/forum/showthread.php?t=17532),结果发现效果不甚理想,而且需要在公共js中写一段代码,各自的textfield中同样也需要写一段代码。最后参考了numberfield源码,才很好的解决了这个问题:
- 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就是屏蔽的字符集合,上例中屏蔽的是空格。