WEB2.0/ExtJS

[ExtJS] TextField에서 키이벤트 활성화시키기

시반 2009. 1. 7. 19:39

폼패널에서는 Config 옵션에에 keys 라는 옵션이 있다.

이것은 폼패널내에서 키이벤트를 핸들링 하는 옵션이다.

많이 사용하는 예는 엔터키를 쳤을 때 OK 버튼 클릭 이벤트가 수행되도록 하는 것이며

그 예는 다음과 같다.

keys:[{
     key:[10,13] // enter
    ,scope:this
    ,stopEvent:true
    ,fn:this.onOK
   }]

TextField만를 사용할 때는  키이벤트를 어떻게 할까?

TextField에는 keydown, keypress, keyup 이라는 세가지 키이벤트를 정의하고 있음에도 불구하고

다음과 같이 리스너로 등록해봐도 작동이 되지 않는다.

listeners:{
   keydown:function(t,e){
      if(e.keyCode == 13){
        //to do
      }
  }}

왤까? 그 이유는?

This event only fires if enableKeyEvents is set to true.

 TextField에서는  enableKeyEvents 옵션이  true  인 경우에만 키이벤트를 핸들링 할 수 있다.

var field = new Ext.form.TextField({
   enableKeyEvents: true
});
field.on('keydown', function() {
   //to do
});