캡처 TAB 키를 텍스트 상자에서[마감]
-
08-06-2019 - |
문제
나는 사용할 수 있는 Tab 키에 텍스트 상자 탭을 통해 공간이 있습니다.방법은 지금,Tab 키를 점프 내 커서를 다음에 입력합니다.
은 거기에 몇 가지 자바 스크립트 캡처하는 것입니다 Tab 키를 텍스트 상자에서 그 전에 거품을 UI?
이해가 어떤 브라우저(예:FireFox)허용하지 않을 수 있다.는 방법에 대해 사용자 지정 키 콤보처럼 이동+Tab, 나 Ctrl+Q?
해결책
도를 캡처하는 경우 keydown
/keyup
이벤트,사람들은 만하는 이벤트에 tab 키를 화재,당신은 여전히 몇 가지 방법이 필요를 방지하는 기본 동작,움직이 다음 항목 탭에서 순서에서 발생합니다.
Firefox 에서 호출할 수 있습니다 preventDefault()
방법 이벤트에 대한 전체 이벤트를 처리기입니다.IE 에서 당신은 return false 이벤트에서 처리합니다.JQuery 라이브러리 제공 preventDefault
는 방법에는 이벤트 객체에서 작동하는 IE,FF.
<body>
<input type="text" id="myInput">
<script type="text/javascript">
var myInput = document.getElementById("myInput");
if(myInput.addEventListener ) {
myInput.addEventListener('keydown',this.keyHandler,false);
} else if(myInput.attachEvent ) {
myInput.attachEvent('onkeydown',this.keyHandler); /* damn IE hack */
}
function keyHandler(e) {
var TABKEY = 9;
if(e.keyCode == TABKEY) {
this.value += " ";
if(e.preventDefault) {
e.preventDefault();
}
return false;
}
}
</script>
</body>
다른 팁
오히려 탭을 들여쓰기 작동하지 않을 보다 깨 탭 간의 양식 항목.
들여쓰려는 경우에 넣어하는 코드에서 인자,사용 Ctrl+K (컴퓨 K Mac).
의 관점에서 실제로 중지 액션,jQuery(는 Stack Overflow 사용)이 중지에서 이벤트의 버블링면 false 를 반환에서는 이벤트 콜백입니다.이것은 인생을 더 쉽게 작업을 위한 여러 브라우저입니다.
이전 답변은 괜찮지만,나는 사람들 중 하나의 단단히 혼합에 대한 행동과 함께 프리젠테이션(퍼팅에서 자바스크립트 내 HTML)그래서 나는 것을 선호하고 내 이벤트 처리 로직 내 자바 스크립트 파일입니다.또한,모든 브라우저 구현에 이벤트(e)동일한 방법입니다.당신은 작업을 수행 할 수 있습니다 확인을 실행하기 전에 모든 논리:
document.onkeydown = TabExample;
function TabExample(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var tabKey = 9;
if(evt.keyCode == tabKey) {
// do work
}
}
을 권장하지 않습니다 변화하는 기본 행동의 핵심입니다.나는 가능한 한 많이 닿지 않은 마우스 그래서 만약 당신이 내 tab 키를 이동하지 않을 다음 분야에서 양식을 나는 것이 매우 악화된다.
바로 가기 키를 유용할 수 있는 그러나,특히 큰 코드 블록과 중첩이 있습니다.Shift-탭 것은 좋은 옵션이기 때문에 일반적으로 저장된 이전의 분야에서 양식.어쩌면 새로운 버튼을에서 대량살상무기 편집기를 삽입하는 코드 탭으로 바로 가기 키를 것이 가능합니까?
에서 문제가 최고의 대답에 의해 주어진 ScottKoon
여기에 그것이
} else if(el.attachEvent ) {
myInput.attachEvent('onkeydown',this.keyHandler); /* damn IE hack */
}
야
} else if(myInput.attachEvent ) {
myInput.attachEvent('onkeydown',this.keyHandler); /* damn IE hack */
}
이 때문에 그것은 작동하지 않았다.을 희망하는 ScottKoon 것입 업데이트 코드
크롬에서 Mac,alt-탭 탭 문자를 삽입으로 <textarea>
다.
여기:.Wee!