jQuery keyup, keydown 또는 keypress 메서드가 나타나지 않습니다. 백 스페이스 키를 누를 때 발생합니다. 어떻게 백 스페이스 키를 눌러야합니까?jQuery를 사용하여 백 스페이스 키를 트랩하는 방법은 무엇입니까?
답변
이 하나를 시도해보십시오. 백스 페이스는 입력 요소에서 잘 작동해야하지만 초점이 단락 또는 다른 것이면 작동하지 않아야합니다. 페이지가 기록의 이전 페이지로 돌아가는 경향이 있기 때문입니다.
$('html').on('keydown' , function(event) {
if(! $(event.target).is('input')) {
console.log(event.which);
//event.preventDefault();
if(event.which == 8) {
// alert('backspace pressed');
return false;
}
}
});
반환 값 false => event.preventDefault와 event.stopPropagation이 모두 적용됩니다.
도 확인하십시오. 46 (삭제) – andufo
작동하지만 모달 창을 표시하고 이전 페이지로 돌아갈 수는 없습니다. –
e.preventDefault()를 시도한 다음 iffy를 확인하십시오. –
일반 자바 스크립트를 사용하여 백 스페이스 키를 트랩 할 수 있습니다. event.keyCode 메소드를 사용할 수 있습니다. 키 코드는 8, 그래서 코드는 다음과 같이 보일 것이다 : 당신은 모두 [삭제]를 위해 (46)를 확인하려면 (8) 키를 사용하는 [백 스페이스]뿐만 아니라 다음을
if (event.keyCode == 8) {
// Do stuff...
}
을 : 위와 같은 생각에서 작업
$('html').keyup(function(e){if(e.keyCode == 8)alert('backspace trapped')})
을하지만, 조금 일반화 :
if (event.keyCode == 8 || event.keyCode == 46) {
// Do stuff...
}
키 업 대신 키 다운을위한 upvote. –
대부분의 브라우저에서 백 스페이스의 기본 동작은 이전 페이지로 돌아가는 것입니다. 이 아니라면이 필요합니다. preventDefault()
을 호출해야합니다. 그러나 OP에서 언급했듯이, 항상 당신이 그것을 preventDefault()
이라고 부르는 경우 텍스트 필드의 내용을 삭제할 수 없게됩니다. 아래 코드는 this answer에 적합한 솔루션을 제공합니다.
하드 코딩 된 keyCode 값을 사용하는 대신 (브라우저에 따라 일부 값이 변경되지만 Backspace 또는 Delete에 해당하지 않는 것으로 나타남) jQuery has keyCode constants이 이미 정의되어 있습니다. 이렇게하면 코드를보다 쉽게 읽을 수 있고 모든 keyCode 불일치를 처리 할 수 있습니다.
이것은 대부분의 경우를 처리하지만 radio 나 checkbox와 같은 특정 입력 유형에서 Select를 다시 방지하기 위해'SELECT'를 제거하고'e.target.type'에 대한 테스트를 추가했습니다. 지금까지이 입력 유형은'var rxt =/radio | button | checkbox | image | reset | submit/i; '를 가지고 있습니다. 색상도 제외시킬 수 있지만 브라우저마다 다를 수 있습니다. – peater
- 1. stdin에서 백 스페이스 키를 무시하십시오.
- 2. jQuery를 사용하여 여러 브라우저에서 백 스페이스 중지
- 3. 체크 키 백 스페이스
- 4. vim에서 백 스페이스 설정
- 5. 트랩 백 스페이스 키
- 6. java.awt.Robot을 사용하여 백 스페이스 키 시뮬레이션
- 7. 백 스페이스 문제
- 8. keypress가 delete 키와 백 스페이스 키를 처리하지 않는 이유
- 9. vi의 파괴적인 백 스페이스
- 10. 백 스페이스 unindents
- 11. 캡쳐 백 스페이스, 괜찮습니까?
- 12. c에서 graphics.h의 outtextxy를 사용하여 백 스페이스 구현
- 13. 빔 백 스페이스 키는 새로운 텍스트에만 적용됩니다
- 14. jQuery를 UI 대화 스페이스
- 15. Intersystems Caché에서 $ etrap을 사용하여 모든 오류를 정말로 트랩하는 방법은 무엇입니까?
- 16. DataGridview에서 (키보드에서) 행 삭제를 트랩하는 방법은 무엇입니까?
- 17. 읽기 쓰기 시스템 호출을 트랩하는 방법은 무엇입니까?
- 18. 텔넷이있는 백 스페이스 키가 잘못되었습니다.
- 19. iPhone Objective-C : UITextView에서 확장 된 백 스페이스 키를 사용하여 "모두 삭제"를 비활성화하는 방법
- 20. 워드 패드 응용 프로그램에 :: SendInput()을 사용하여 백 스페이스 키를 보낼 수 없습니다.
- 21. jQuery를 사용하여 스페이스 바 브라우저 동작 복제
- 22. jQuery : keypress 이벤트에서 문자가 아닌 키를 필터링하는 방법은 무엇입니까?
- 23. MaskedTextbox에서 백 스페이스 숨기기, 키 삭제
- 24. Win32 콘솔 - 마지막 줄의 백 스페이스
- 25. Tab 키를 트랩하는 코드의 HTML 텍스트 영역 편집기
- 26. C++ F1 - F12 키를 트랩하는 폼 서브 클래 싱
- 27. jQuery를 사용하여 문자 수를 계산할 수 없습니다.
- 28. bcp와 백 스페이스 (^ H) 구분 기호
- 29. C# 프로그램을 사용하여 게임으로 키를 탐지하는 방법은 무엇입니까?
- 30. 특정 키를 사용하여 배열을 정렬하는 방법은 무엇입니까?
명확히하기 위해 백 스페이스 키를 눌렀을 때 트랩하여 조치를 취하고 싶습니다. 마지막 문자가 텍스트 상자에서 제거되면 페이지의 일부 단추의 활성화 된 상태가 변경됩니다. 따라서 백 스페이스 키가 정상적으로 작동하기를 원합니다. – ChrisP
그건 사실이 아니야. keyup 및 keydown 메소드에 나타납니다. 키 누르기에만 표시됩니다. – Line
@RickSmith 동의하지 않습니다. 당신이 말하는 질문은 자바 스크립트에서였습니다. 여기에있는 OP는 jQuery에서 묻습니다. 누군가가 한 가지 방법 또는 다른 방법으로 대답을 원하는 이유가있을 수 있습니다. –