2016-09-30 108 views
0

我的最終目標是覆蓋數字鍵盤上的輸入按鈕以關閉鍵盤。用javascript或html跳過數字鍵盤輸入按鈕

我有一個輸入字段,我最終希望用戶輸入一個電話號碼。因此,我設置它是這樣的,我用表單包圍輸入以嘗試覆蓋輸入按鈕(我是使用角度):

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

這是成功的覆蓋回車鍵和關閉鍵盤。接下來,我想只是數字鍵盤,所以我更新了我的輸入:

<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'鍵時,它是成功的。除了當我單擊數字鍵盤上的輸入按鈕時,它會跳轉到屏幕上的下一個輸入字段。請幫忙! PS,我在Nexus 9上測試了這一點,並通過開發人員工具使用Chrome的遠程調試器。當我通過遠程調試器輸入回車鍵時,它成功讀取鍵碼13。

回答

0

我找到了答案。在Nexus 9上的數字鍵盤上(不知道其他平板電腦),「輸入」按鈕實際上是標籤按鈕。 這是令人困惑的,因爲我可以爲該按鈕註冊一個keydown,但不是一個keyup,這是我之前一直在檢查的。所以我改成了keydown,並在我的'13'支票上加了'9',而且工作正常!

+0

另外,調用event.preventDefault()也會停止自然選項卡的內容 – Kevin