2011-07-01 24 views
4

私はある時点で大きな<form>のiPad webappを持っています。その中のすべての入力には、keyUpイベントとBlurイベントの両方で値を制御する関数があります。Enterキーを押してonBlur()イベントをトリガーする方法は?

「入力」キーを押すとユーザーが誤って「GO」ボタンに当たった場合、フォームが送信されます。私はこの仲裁を傍受し、フォーカスされた要素の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のキーボードがポップするための入力が少なくとも1つ必要です。

答えて

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);

次のように使用します。おかげで、今の私が唯一のiPadのために働いていますが、それは後で役に立つでしょう

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

     } 
+0

。ところで、ぼかし/フォーカスで再生中に警告をトリガすることは悪い考えです。一部のブラウザではblur()が発生します。 –

関連する問題