2017-08-24 16 views
0

現在、コードバを使用しているモバイルアプリで作業しています。私は、ユーザーがテキスト入力フィールドに入力してEnterキーを押すたびに検出する関数をコーディングしたこの問題に遭遇しました。keydownイベントの検出(モバイル)

ここにJavaScriptスニペットがあります。

<script type="text/javascript"> 
    $(function() { 
     $("#searchForm").on("input", function (e) { 
      e.preventDefault(); 
     }); 
     $("input").on("keydown", function (e) { 
      if (e.keyCode === 13) { 
       var keyField = document.createElement('input'); 
       keyField.setAttribute('type', 'text'); 
       document.body.appendChild(keyField); 
       setTimeout(function() { 
        keyField.focus(); 
        setTimeout(function() { 
         keyField.setAttribute('style', 'display:none;'); 
        }, 50); 
       }, 50); 
      } 
     }); 
    }); 
</script> 

HTML部分。

<form onsubmit="return false" id="searchForm"> 
    <input type="text" id="fieldOne"> 
    <input type="text" id="fieldTwo"> 
    <input type="button" value="Search" id="search" onclick="executeSearches()"/> 
</form>  

このコードは、モバイルキーボードを隠す達成するために機能するが、隠蔽機能が実行されたときにビューがあるためkeyField -variableで移動しています。

ビューを移動しないでこの機能を実現できる他の方法はありますか、またはビューを移動する場所を何とか決定できますか?

答えて

1

あなたが「#」を欠けている、jqueryのセレクタをチェック

$("#searchForm").on("input", function (e) { 
     e.preventDefault(); 
    }); 
+0

は指摘するが、それはまだビューは、Enterキーを押した後に移動しているという事実は変わりません。これを回避するためのアイデアはありますか? – IlariM

関連する問題