2009-05-14 4 views
0

asp.net 애플리케이션을 작성 중이며 로그인 할 수 있도록 텍스트 상자가 보이게하려면 사용자가 키를 눌러야하는 양식이 있습니다. 키를 누르면 라벨이 사라지고 텍스트 상자가 보이기를 원합니다. 어떤 이유로 'onkeydown'이벤트가 FF 또는 IE에서 실행되지 않지만 Chrome에서 정상적으로 작동합니다. 애플리케이션은 링크 브라우저를 사용하여 AML 터미널에서 실행되지만 현재 해당 플랫폼에서 테스트 할 수는 없습니다. 여기 내 코드입니다 :IE7 또는 FF3에서 html 양식을 실행하지 않는 onkeydown 이벤트

<form id="form1" runat="server" onkeydown="CheckKey(event.keyCode)" 
enableviewstate="True" submitdisabledcontrols="False" visible="True"> 

<script type="text/javascript"> 

    function SetVisibility() { 
     var txtbx = document.getElementById("txtbx_login") 
     txtbx.style.display = "none"; 
     var form = document.getElementById("form1") 
    } 

    function CheckKey(keycode) { 
     if (keycode == 113) { 
      var txtbx = document.getElementById("txtbx_login") 
      txtbx.style.display = ""; 
      var lbl = document.getElementById("lbl_login") 
      lbl.style.display = "none"; 
     } 
    } 

</script> 

****** 다른 형태의 요소 ******는

</form> 

유일한 방법은 얻을 수 있었다 작업 할 onkeydown 이벤트는 텍스트 상자 컨트롤이 표시되어 있고 포커스가있는 경우입니다. 내가 놓친 게 있니? 도와 주셔서 감사합니다!

답변

3

문제는 onkeydown 확인이 양식에 작성되었다고 생각합니다.

은 윈도우 이벤트에 이벤트 처리기를 추가하기 위해 자바 스크립트를 사용하여 본문 요소로 이동 시도하거나 더 나은 :

function handleKeypress(e){ 

     var keycode = e.keyCode || e.charCode; 

     if (keycode == 113) { 
      var txtbx = document.getElementById("txtbx_login") 
      txtbx.style.display = ""; 
      var lbl = document.getElementById("lbl_login") 
      lbl.style.display = "none"; 
     } 

    } 
    window.onkeypress = handleKeypress; 

파이어 폭스에서 당신은뿐만 아니라 event.charCode를 사용해야합니다. 위의 모든 브라우저에서 테스트하지는 않았지만 시작일뿐입니다.

+0

Perfect. 그것이 전부입니다. 고맙습니다. –

관련 문제