2016-09-30 6 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 и добавил «9» к моей проверке «13», и это сработало!

+0

Также вызовите event.preventDefault(), чтобы остановить содержимое естественной вкладки – Kevin