Есть ли способ сфокусировать элемент ввода core-input или paper-input?
Я хочу добиться: установить курсор на элемент ввода, чтобы пользователь мог начать вводить текст.
Таким образом, он не будет вынужден щелкать элемент перед записью.
Есть ли способ сфокусировать элемент ввода core-input или paper-input?
Я хочу добиться: установить курсор на элемент ввода, чтобы пользователь мог начать вводить текст.
Таким образом, он не будет вынужден щелкать элемент перед записью.
core-input
отсутствует focus()/blur()
API, это, по сути, ошибка.
А пока вы можете сделать это:
<reference to a core/paper-input>.$.input.focus();
core-input
теперь поддерживает focus()
, но с небольшой уловкой, см. Мое решение ниже
- person amit; 10.11.2014
core-input теперь имеет .focus()
метод, который он делегирует внутреннему focus()
Из кода core-input.html
:
focus: function() {
this.$.input.focus();
}
Это означает, что в вашем собственном коде вам нужно называть это следующим образом:
elem[0].focus()
В моем случае я звоню focus
с timeout
. В этом случае bind
необходим core-input
для правильного использования this
:
$timeout(elem[0].focus.bind(elem[0]));
elem[0].focus.bind(elem[0])
, - это создает функцию (которая немедленно отбрасывается); на самом деле он не вызывает focus()
. Вы хотели напечатать что-нибудь еще?
- person Scott Miles; 10.11.2014
timeout
, который получает функцию, поэтому я отбросил эти скобки. Благодарю.
- person amit; 11.11.2014
elem[0].focus.bind(elem[0])()
не нужно. elem[0].focus()
достаточно.
- person Scott Miles; 12.11.2014
bind
- особый случай, и я соответствующим образом обновил свой ответ. Спасибо.
- person amit; 12.11.2014
.focusAction (); работает немного лучше, плавающие заголовки будут реагировать правильно, если они включены.
для тех, кто использует Polymer 1.0 (не OP на момент публикации)
Для первого ввода бумаги вы можете установить фокус следующим образом:
$('paper-input input').first().focus();
вы также можете выбрать по идентификатору для конкретного ввода бумаги:
$('#myValue input').focus();
Для Полимера 2.0 используйте
this. $. id-of-the-Element.focus ();
поэтому, если ваш элемент похож на <paper-input id="myInputElement" type="number" name="myInputElement"> </paper-input>
Тогда вы сделаете this.$.myInputElement.focus();