0

자바 스크립트는 키 누름, 키 입력, 키 누르기 및 keydown에 대해 three events을가집니다.
어떤 이유로 Sencha Touch는 keyup 이벤트 만 지원합니다. 텍스트 필드의 값을 변경하기 전에 이벤트 (아마도 keydown 또는 keypress)를 catch하고 싶습니다. keydown 이벤트를 포착하면이 작업이 가능 해지고 훨씬 더 빨라야합니다. 키 업으로 약간의 효과가 있습니다.sencha touch의 onkeydown

마지막으로 목표는 사용자가 숫자를 입력하고 십진수와 천 단위 분리자를 자동으로 추가하는 것입니다. 현재 keyup 이벤트로는 가능하지만 느립니다. 사용자는 텍스트가 바뀌고 다시 변경되는 것을 볼 수 있습니다.

텍스트 필드에를 keyDown 이벤트를 추가하는 내 코드 :

initialize: function() 
{ 
    this.down('textfield[name=amountTotal]').onkeydown 
    = MyApp.app.getController('MyController').handleInput; 
} 

나는 확인했다고이 코드는 텍스트 필드가 발견 실행하고 컨트롤러 기능은 내가 실행할 올바른 기능을 유지하지 때. 또한 뷰 파일에 함수를 추가했습니다.

그러나 내 handleInput 함수에는 도달하지 않습니다.

나는 Sencha does not support other events을 알고 있지만 이것은 순수한 자바 스크립트에서만 가능해야합니다.

답변

1

거의 다 알았습니다.

initialize: function() { 
    var textfield = this.down('textfield[name=amountTotal]'); 
    textfield.bodyElement.dom.onkeydown = MyApp.app.getController('MyController').handleInput; 
} 

바이올린 : 작동 https://fiddle.sencha.com/#fiddle/caj

+0

덕분에, 유일한 단점은 내가 직접 인수로 엽차의 텍스트 필드를 할 수 없다. 어떻게 찾을 수 있을까요? 이 필드와 같은 필드 목록이 있기 때문에 이름을 기반으로 셀렉터를 사용할 수 없습니다. – MrFox