Я создал компонент текстового поля, состоящий из обычного текстового поля и кнопки clear (x) рядом с ним.Виртуальная клавиатура кратковременно исчезает на якорный щелчок
Это наценка:
<div class="input-clear">
<input type="email" name="user" placeholder="Email address" />
<a href="#">clear</a>
</div>
Это код, я использую для его инициализации:
[].forEach.call(document.getElementsByClassName('input-clear'), function(el) {
var input = el.getElementsByTagName('input')[0],
a = el.getElementsByTagName('a')[0],
updateField = function() {
if (input.value.length) {
a.style.display = 'inline';
} else {
a.style.display = 'none';
}
},
clearField = function(event) {
event.preventDefault();
input.value = '';
input.focus();
updateField();
};
if (input && a) {
input.addEventListener('keyup', updateField, false);
input.addEventListener('change', updateField, false);
a.addEventListener('click', clearField, false);
updateField();
}
});
обработчик событий clearField()
опустошают поля, удаляет кнопку четкой и затем снова фокусирует текстовое поле.
Проблема
Когда кнопка нажата ясно, виртуальная клавиатура на короткое время исчезает между размытием и фокусировкой. Можно ли постоянно держать клавиатуру видимой?
Btw, я знаю, что кнопка ясно не исчезает, когда выбран весь текст, а затем удаляется, но я не слишком беспокоиться о том, что сценарий :)
Что произойдет, если вы используете 'touchstart' вместо' click' и отмените событие до того, как вход потеряет фокус? –
@DaggNabbit Хорошо, это запечатало сделку :) вы хотите написать это как ответ? –
Конечно, почему бы и нет :) –