Я создаю сенсорную экранную клавиатуру для мобильного прототипа. Мы не используем клавиатуру устройства по умолчанию, а используем пользовательскую экранную клавиатуру (по исследовательским причинам это неизбежно), которая заполняет поле ввода с помощью следующего кода:
HTML:
<input id="tags" class="typeahead" type="text" placeholder="Enter keyword">
<ul id="keyboard">
<li class="letter">1</li>
<li class="letter">2</li>
<li class="letter">3</li>
<li class="letter">4</li>
<li class="letter">5</li>
<li class="letter">6</li>
<li class="letter">7</li>
<li class="letter">8</li>
<li class="letter">9</li>
</ul>
JQuery:
var $write = $('#tags');
$('#keyboard li').click(function(press){
var $this = $(this),
character = $this.html();
$write.val($write.val() + character);
};
Это отлично работало на нашем планшетном устройстве, пока я не захотел добавить функциональность typeahead.js, чтобы мы могли заполнять предложения из нашей базы данных. К сожалению, typeahead.js не читает то, что находится в поле, пока не будет нажата клавиша, а поскольку я использую виртуальную клавиатуру, событий нажатия клавиш нет!
Фактический код намного больше, чем это, на самом деле есть полнофункциональная клавиатура, насколько нам нужно, поэтому я бы предпочел не переключаться на другие методы ввода так близко к финишу.
Если есть способ сделать так, чтобы typeahead мог регистрировать все, что находится в поле ввода, и по-прежнему работать при касаниях экрана, или способ имитировать событие нажатия клавиши в моей клавиатуре.js, это было бы здорово. Я готов добавить что-то в ввод текста или в свой код.
Ваш совет будет очень ценен!