2016-09-30 10 views
0

私の最終目標はキーボードを閉じるために数値キーボードのEnterボタンを無効にすることです。数値キーボードの入力ボタンをスキップするJavaScriptまたはhtml

私は最終的にユーザーが電話番号を入力したいと思う入力フィールドを持っています。したがって、入力ボタンを上書きしようとするフォームで入力を囲んでこれを設定しました角度を使用して):

<form ng-submit="closeKeyboard()"> 
    <input id="myInput"> 
</form> 

これは、Enterキーを無効にしてキーボードを閉じるのに成功しました。次に、私はただの数字キーボードをしたいので、私は私の入力を更新:

<input id="myInput" type="tel" pattern="\d{3}[\-]\d{3}[\-]\d{4}"> 

これは、数値キーボードを起動することに成功している(はい、私は(数値または数値としてタイプを設定するとどの思い出すことができないことを知っています)もうまくいきます。ただし、入力ボタンはオーバーライドされません。だから私は、決定ボタンを無視するからkeyupリスナーを持つようにそれを設定しようとした:

elem.keyup(function (event) { 
    var x = event.keyCode; 
    var y = event.which; 
    if (x == 13 || y == 13) { 
     $element.find(":input").blur(); 
    } 
}); 

これは、キーの多くをキャッチに成功しています。数値キーボードで「5」と「6」のキーを入力すると成功します。数値キーボードのEnterボタンをクリックする以外は、代わりに画面上の次の入力フィールドにジャンプします。助けてください! PS、これをNexus 9でテストしています。開発ツールを使用してChromeのリモートデバッガを使用しています。 Enterキーをリモートデバッガで入力すると、キーコードが13で正常に読み込まれます。

答えて

0

私は答えを見つけました。 Nexus 9の数字キーボード(他のタブレットについてはわからない)では、「入力」ボタンは実際はタブボタンです。 これは、私が前に確認していたキーアップではなく、そのボタンプレスのキーダウンを登録できるので、混乱していました。だから私はkeydownに変更し、私の '13'小切手に '9'を加えて、それがうまくいった!

+0

また、event.preventDefault()を呼び出してナチュラルタブのコンテンツを停止する – Kevin

関連する問題