2010-11-26 2 views
1

Я разрабатываю виртуальную клавиатуру Javascript, и я хотел бы, чтобы она появлялась каждый раз, когда пользователь вводил текст в текстовые поля. Но как я могу узнать, выбрано ли поле текста (или любого ввода)?Виртуальная клавиатура Javascript: как указать текстовые поля?

--clarification

Я должен информации или контроль над страницей, которая будет загружена. Я просто хочу, чтобы, если выбрано поле ввода и пользователь нажимает enter, появляется моя виртуальная клавиатура.

--update

ли это делает никакой разницы, если то, что я пытаюсь сделать, это расширение Firefox? (Я думаю, это не должно)

+0

Будет ли вариант jQuery? – 2010-11-26 14:56:31

+0

@ Frédéric Hamidi yes – 2010-11-29 14:26:35

ответ

0

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

1

привяжите его к событию onfocus. Это событие срабатывает, когда элемент ввода получает фокус. Вы можете снова удалить клавиатуру в событии onblur, если хотите снова скрыть ее.

+0

У меня нет идентификатора компонента. Я хочу, чтобы, когда какой-либо компонент ввода на странице сфокусирован, появляется моя виртуальная клавиатура. – 2010-11-29 14:25:12

0

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

Пример в JQuery (JQ, выбранный для краткости, событие работает в обычном JS):

$('input[type="text"]').focus(function(event){ 
    // do something here 
}); 

Если вы только заботиться, чтобы захватить ключ «войти», вам не нужно беспокоиться о фокусе, просто прикрепить к OnKeyPress события из текстовых полей (см @ ответ poelinca в).

+0

У меня нет идентификатора компонента. Я хочу, чтобы, когда какой-либо компонент ввода на странице сфокусирован, появляется моя виртуальная клавиатура. – 2010-11-29 14:26:11

+0

@Tom Brito: Правило выше соответствует любому элементу ввода текста, вам не нужно знать идентификатор компонента. – Piskvor 2010-11-29 14:47:58

3

использование JQuery и добавьте следующий

  $(document).ready(function() { 
       //apply action to input elements by class 
       //$("#.input_class").keypress(function(e) { 
       //apply action to all input elements (input, textarea, select and button) 
       $(':input').keypress(function(e) { 
        if(e.keyCode==13){ 
         // Enter pressed... do anything here... 
         alert($(this).val()); 
        } else { 
              //make shure you get the desired action for other keys pressed 
         xTriggered++; 
        } 
        //do not submit the form 
        return false; 
       }); 
      }); 
0

Несмотря на то, что JQuery сказать апологеты, нет никаких хлопот инструмента всех полей, не прибегая к большим и медленной внешней библиотеке:

for (var i = 0; i < document.forms.length; i++) 
    for (var j = 0; j < document.forms[i].elements.length; j++) 
    if (document.forms[i].elements[j].tagName.match(/^INPUT$/i)) 
     if (document.forms[i].elements[j].type.match(/^TEXT$/i)) 
     document.forms[i].elements[j].addEventListener('focus', function(){/* your stuff here */}, false);