Автозаполнение и пользовательская клавиатура - PullRequest
1 голос
/ 08 апреля 2010

Я использую asp: кнопку для создания клавиатуры с AZ и 0-9 для сенсорного экрана, используя скрипт Java.Эта клавиатура связана с одним текстовым полем.Если мы нажмем одну кнопку, соответствующий текст будет отображаться в текстовом поле.Работает нормально.Я включил функцию автозаполнения в это текстовое поле, используя jquery JQuery Autocomplete .

Проблема:

  1. Автозаполнение не работает, если я определяю клавиатуру. Как изменить мои кнопки в качестве клавиш клавиатуры [Установить код события]?Является ли это возможным?Есть ли другой способ добиться этого?

Код:

 <asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>

 <asp:Button ID="zero" runat="server" Text="0" CssClass="myclass" OnClientClick="return typeLetter(this);" TabIndex="20"/>

 function typeLetter(currentbutton) {
         if (previousActiveElement != null) {
             if (previousActiveElement == 'antSearchText'){

                 var position = document.getElementById('position').value;

                 if (position == '') {
                     alert('chk position');
                 } else {
                     var existingString = document.getElementById(previousActiveElement).value;
                     var beforeString = existingString.substring(0, position);
                     var afterString = existingString.substring(position, existingString.length);
                     document.getElementById(previousActiveElement).value = beforeString + currentbutton.value + afterString;
                                                                     setCaretPosition(document.getElementById(previousActiveElement), parseInt(position) + 1);
                     setCaretPosition(document.getElementById(previousActiveElement), parseInt(position) + 1);                         
                 }                     
             }                 
         }             
         return false;
     }

Редактировать:

В плагине автозаполнения получается следующееключевое событие, Как передать то же ключевое событие, используя мои ключи?

  $input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
}

Ответы [ 2 ]

0 голосов
/ 13 апреля 2010

Проблема решается с помощью следующего кода.

Код:

var q = document.getElementById('txtbox');
var evObj = document.createEventObject();
evObj.keyCode = 84; // [T] key
q.fireEvent('onkeydown', evObj);

Гита.

0 голосов
/ 08 апреля 2010

Попробуйте запустить событие jQuery keydown / keyup вручную. На всю жизнь я не могу вспомнить, какое автозаполнение происходит, но вот суть:

// your documment.getElementById(...)
jQuery('#'+previousActiveElement).keyup();
// your setCaretPosition

Попробуйте разные ключевые события, и автозаполнение должно начаться.

Надеюсь, это поможет!

Спасибо, Джо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...