2011-07-01 6 views
4

나는 어떤 점에서 큰 <form>와 함께 iPad webapp를 가지고있다. 그 안에있는 모든 입력에는 keyUp 및 Blur 이벤트에서 값을 제어하는 ​​함수가 있습니다.Enter 키를 눌러 onBlur() 이벤트를 트리거하는 방법을 처리하는 방법은 무엇입니까?

사용자가 실수로 입력하는 동안 "GO"버튼을 누르는 경우 ("enter"키 누르기로 간주) 양식이 제출됩니다. 이 comportment를 가로 채고 대신 포커스 된 요소의 onBlur() 이벤트를 트리거하고 싶습니다. 지금은

나는이 있습니다

load(){ 
    document.addEventListener("keydown",logPressedKeys,false); 
} 
/** 
* logs the keys hit in the console, will eventually trigger my onBlur event 
*/ 
    function logPressedKeys(e) { 
     console.log(e.keyCode); 
     if (e.keyCode==13) { 
     console.log('Enter spotted: prevent!'); 
     e.preventDefault();//Shall prevent submitting 
     return false;//Hoping it prevents default if above fails 
    } 
} 

너희들은 그것에 대해 어떤 조언/아이디어/개선이?

참고 : iPad 키보드가 튀어 나오도록 입력이 하나 이상 있어야합니다.

답변

2

이 document.activeElement는 iPad의 Safari에서 작동합니다.

function logPressedKeys(e) { 
    console.log(e.keyCode); 
    if (e.keyCode==13) { 
     e.preventDefault(); 
     console.log('Enter spotted: prevent!'); 
     temp=document.activeElement; 
     //console.log(temp); 
     temp.onblur(); 
     return false; 
} 
return true; 
} 
0

모든 브라우저에서 작동하지는 않습니다.

document.addEventListener ("keydown", logPressedKeys, false); 이 같은

사용 :

document.onkeydown = function (e) { 
      alert(e.keyCode); 

     } 
+0

덕분에, 지금은 아이 패드에 대한 일하고 있어요,하지만 나중에 유용합니다. 그런데 흐림/포커스로 놀고있는 동안 경고를 유발하는 것은 나쁜 생각입니다. 일부 브라우저에서는 blur()가 발생합니다. –

관련 문제