2009-07-18 2 views
3

양식을 제어하려고하는데 양식 요소 'tabindex 속성을 통해 사용자가 양식과 상호 작용하는 방식을 제어하고 있습니다. 모든 요소에 tabindex이 지정되어 있으며이 값을 올바르게 사용하고 존중해야합니다.jQuery를 사용하여 tabindex 문제를 회피하십시오.

현재 맥/파이어 폭스에서 개발 중이며 입력 요소와 목록 만 탭 전환하도록 설정 한 기본 Mac 시스템 설정에 대해 알고 있습니다. 그러나이 방법과 다른 시스템/브라우저에서이 설정을 변경할 수있는 다른 설정을 무시하고 싶습니다.

jQuery를 사용하여이 문제를 해결하려고합니다. 여기에 내 코드가 있습니다 :

$(":input").keypress(function(e){ 
    if (e.which == 0) 
    { 
     tindex = parseInt($(this).attr("tabindex")) + 1; 
     $(":input[tabindex='" + tindex + "']").focus(); 
    } 
}); 

그러나 이것은 내가 원하는 방식으로 작동하지 않습니다. 기본 Mac 설정이 활성화되어 있으면 실제로 tabindex를 건너 뛰고 비 텍스트/텍스트 영역 항목은 건너 뜁니다. 예를 들어 input[tabindex=2]에 있고 'Tab'키를 누르면 input[tabindex=4]으로 전송됩니다. 내가 input[tabindex=2]에 있고 input[tabindex=2]input[tabindex=4] 사이에 select 상자가있는 경우 input[tabindex=5]으로 전송됩니다.

input[tabindex=2]으로 input[tabindex=3], select[tabindex=3], input[type=radio][tabindex=3] 등을 보내고 싶습니다. 기본적으로 무엇이든간에 tabindex은 3입니다.

이 문제를 피할 수있는 아이디어를 알려주십시오. 또한 내가보고 있어야하는 다른 시스템/브라우저에서 다른 것을 알고 있는지 알려주십시오.

+0

selectbox에서 작동합니까? – cometta

답변

4

e.preventDefault();을 키 누르기 이벤트 처리기에 추가하십시오. 그러면 브라우저가이 이벤트에 대한 기본 조치를 수행하지 않게됩니다. 이렇게하면 브라우저가 클릭 핸들러에 배치 된 경우 링크를 따르지 않습니다.

documentation을 참조하십시오.

+0

감사합니다. 완벽하게 작동했습니다! –