2014-09-25 3 views
0

Sencha Touch 2의 숫자 필드에 keydown 수신기를 추가하여 양식을 제출할 때까지 기다리지 않고 오류 필드를 동적으로 확인하려고합니다. 숫자 필드는 양식의 구성 요소입니다. 공식 documentation을 보면 keyup 이벤트 만들을 수 있습니다.Ext.field.number에 keydown 수신기를 추가하는 방법은 무엇입니까?

표준 자바 스크립트 keydown을 청취하고 양식의 초기화 기능에서이 사용자 정의 수신기를 정의 할 수 있습니까?

+0

아마도 keydown 이벤트가 필요한 이유에 대해 좀 더 자세히 설명해 드릴 수 있습니다. Sencha 내장 기능을 사용하면 99 %의 시간을 절약 할 수 있습니다. 그럴 수 없다면 input 요소에 대해'numberfield.element'의 트리를 검색하고 거기에 keydown 속성을 추가하십시오. – Alexander

답변

1

당신은 입력 필드에 리스너를 추가 할 수 있습니다

numberField.getComponent().input.on({ 
 
    scope: this, 
 
    keydown: 'onKeyDown' 
 
});

는 그런 다음 방법에 수행 할 작업을 정의하는 'onKeyDown에'

주의, 나는 특히 안드로이드, 다른 장치에 키보드 기능을 사용하려고 많은 문제로 실행했습니다. 이 문제와 많은 어려움을 겪고 난 후 숫자 입력란에 대한 표준이 없기 때문에 다양한 장치 키패드와 달리 데이터 입력 용 숫자 패드를 만드는 것이 더 나은 해결책이었습니다. 희망이 도움이됩니다.

+0

이 접근 방식이 효과가있는 것 같습니다. Chrome에서 테스트 할 때 수신 대기중인 이벤트가 keydown이 아닌 keypress 인 것으로 나타납니다. –

0

addListener 메서드를 사용해 보셨습니까?

numberField.addListener('keydown', function(){ 
    alert("key down"); 
}); 

http://docs.sencha.com/touch/2.4.0/#!/api/Ext.mixin.Observable-method-addListener

+0

다른 이벤트에 addListener를 사용합니다. 숫자 필드의 미리 정의 된 이벤트에서만 작동합니다. keydown은 이러한 미리 정의 된 이벤트 중 하나가 아닙니다. –

+0

@mr_js 숫자 필드를 컨테이너 안에 넣고 keydown 수신기를 컨테이너에 추가 할 수 있습니까? – sissonb