2013-03-20 3 views
2

그래서 기본적으로 사용자가 누르는 키를 감지하는 기능이 있으며 사용자가 스페이스 바를 눌렀을 때마다 양식을 제출합니다 (이유를 묻지 마십시오). 내 자바 스크립트는 다음과 같습니다.javacript key detection은 최신 문자를 추가하지 않음

document.addEventListener('keydown', function(e){ 
    if(e.keyCode === 32) { 
     setTimeout("submit()",1); 
    } 
}) 

양식 제출이 이루어지고 필드가 데이터베이스로 전송됩니다 사용자가 제출하기 위해 스페이스 바를 눌렀으므로 분명히 제출 된 문자열 끝에 공백이 있어야합니다. 그러나  은 표시 될 때 문자열 끝에 표시되지 않습니다.

+1

당신은'keyup' 이벤트를 시도 할 수 있습니다. 어디서 ' '을 추가해야하는지 알지 못하기 때문에 더 많은 자바 스크립트와 HTML을 제공해야합니다. 이 이벤트를'document'에 첨부했습니다. 그래서 제출 된 것에 공간이 반드시 추가되는 것은 아닙니다. 정확히 어쨌든 제출되는 것은 무엇입니까? – Ian

+1

왜 공간이 ' '이 될 것으로 예상합니까? 그들은 완전히 다른 두 가지입니다. –

답변

1

keydownkeyup 이벤트의 차이는 keydown 화재 컨텐츠로 눌러 편지를 추가하기 전에 및 keyup가 후에 발사된다는 점이다.

마지막 공간을 추가하려면 에 바인딩을 시도하십시오.

참조 : http://www.quirksmode.org/dom/events/keys.html

+0

감사합니다. 이 일했다! –