문제

나는 사용할 수 있는 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!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top