2014-08-29 1 views
0

최신 Chrome 브라우저를 사용 중입니다.famo.us 입력 표면 변경/변경 이벤트

도 단지 ('변화', 기능() {}) inputsurface.on 할 수있는 확장 된 이벤트가 없습니다 년부터 inputsurface의 더러운 방법을 onchange를 이벤트를 연결 한 후에 :

MyInputSurface.prototype.deploy = function deploy (target) { this._superDeploy (target);

target.onchange = function() { 
     console.log('test change'); 
    }; 
    target.onclick = function() { 
     console.log('test click'); 
    }; 
}; 

브라우저 창에서 뒤로 클릭 할 때까지 onchange 이벤트가 시작되지 않습니다. click 이벤트는 잘 작동합니다. 어떤 충고?

답변

0

입력이 포커스를 잃을 때까지 onchange 이벤트가 발생하지 않습니다. 따라서 콜백을 실행하기 전에 브라우저 창을 다시 클릭해야합니다. IE Dev Center에서

:

내용을 커밋하고 값이 변화하지 않으면 서하면이 이벤트가 시작됩니다. 예를 들어, 텍스트 상자에서이 이벤트는 사용자가 입력하는 동안 발생하는 것이 아니라 사용자가 포커스가있는 텍스트 상자를 닫아 변경 내용을 커밋 할 때 발생합니다. 또한이 이벤트는 컨트롤이 포커스를 잃을 때 onblur에 의해 지정된 코드보다 먼저 실행됩니다.

사용자가 입력 할 때 입력 값을 원하면 입력의 input 이벤트를 수신해야합니다. IE Dev Center에서 다시

: 당신은 텍스트 영역, 입력 유형 = 텍스트 또는 입력 유형 = 암호의 내용이 변경되었을 때 감지 할 oninput을 사용할 수 있습니다

. 이 이벤트는 요소가 포커스를 잃을 때 발생하는 onchange 이벤트와 달리 수정 직후에 발생합니다.

input 콜백이 실행되면 change처럼 대상 값을 가져옵니다.