2011-10-18 6 views
10

사용자가 을 누를 때 버튼에 초점을 설정하려고합니다. 텍스트 상자에 키를 입력하십시오. 하지만 작동하지 않습니다. 인터넷   탐색기   8 브라우저를 사용하고 있습니다. 내가 놓친 게 있니?버튼에 초점 설정이 작동하지 않습니다.

$("input.Box").live('keydown', function(e) { 
    if (e.keyCode == 13) { 
     e.preventDefault(); 
     $("#button").focus(); // Not working? 
    } 
}); 

답변

6

Microsoft는 e.keyCode이 마음에 들지 않아 대신 자신의 구문이 e.which 인 것으로 결정했습니다.

$("input.Box").live('keydown', function(e) { 
    var keyCode = (window.event) ? e.which : e.keyCode; 

    if (keyCode == 13) 
     e.preventDefault(); 
     $("#button").focus(); // Not working? 
    } 
}); 
+0

나를 위해 e.keyCode == 13 잘 작동하는 것 같습니다 ... – Lamps

1

이름이 맞습니까? .NET에는 이름 바꾸기 습관이 있습니다. 언어 나 환경을 지정하지 마십시오.

클래스 선택기를 사용해보십시오. 단추에 클래스 이름을 class="Test"으로 지정한 다음 $(".Text").focus()을 사용하여 선택하십시오.

+0

예, 이름이 정확합니다. – Lamps

9

문제는 IE 당신이 live 기능을 입력 할 때 사이에 작은 지연을 추가 할 필요가 있으므로, 충분히 빠르게 응답 할 수 없다는 것이다 때, 그리고 .focus()을 :

당신은 모두에 대해 확인해야 호출됩니다. 그래서, 블렌더이 문제를 해결해야한다 제안 e.keyCode으로 e.which 사용과 함께,

setTimeout(function() { 
$('#button').focus(); 
}, 100); 

이 함께

$("#button").focus();

를 교체합니다.

+0

나를 위해 e.keyCode == 13 잘 작동하는 것 같습니다. – Lamps

-1

포커스를 설정하기 전에 DOM이 준비되어 있는지, 요소가 있는지 확인하십시오.

+1

그는 문서로드에 버튼을 집중 시키려고하지 않습니다. –

관련 문제