2013-07-05 17 views
9

Sytuacja:Jak złapać wprowadzanie danych z klawiatury bez pola wprowadzania widocznej w JavaScript

  • HTML5 z jQuery Mobile na iPadzie (EDIT: HTML5 stronę w aplikacji PhoneGap)
  • zewnętrznej klawiatury dołączonej
  • tekst pole wejściowe jest ukryte, brak widocznego pola wejściowego
  • brak skupienia na polu wprowadzania tekstu -> brak wyświetlanej miękkiej klawiatury

Cel:

  • haczyk klawiatura bez pokazywania & skupiając się na polu tekstowym
  • klawiatura jest zmienne są zwroty (np nazwa1, object2, phrase3)
  • Wystarczy rozpocząć wpisywanie i strona powinna uchwycić wpisując

-> W jaki sposób można wykryć wejście klawiatury w polu wejściowym ukrytym?

wiem zdarzenia keydown/przyciśnięcie/keyUp jednak wydają się wymagać widocznego pola wprowadzania

+2

'$ (dokument) .on ('keyup', $ .mobile.pageContainer, function() {});' spróbuj. lub '$ ('body'). on ('keyup', function() {});' – Omar

+0

oto działający przykład. Jeśli tego potrzebujesz, daj mi znać. http://jsfiddle.net/Palestinian/sG9n8/ – Omar

+0

Dla mnie oba stwierdzenia i odpowiedź poniżej sprawiają, że działa tylko z ustawieniem ostrości na polu wprowadzania - ale jeśli pole wejściowe jest ukryte, żadne dane wejściowe z klawiatury nie zostały przechwycone. wszelkie pułapki, które przeoczyłem? –

Odpowiedz

1

Można powiązać zdarzenie do dokumentu w taki sposób: -

$(document).bind('keyup', function(e) { 
    alert('testing'); 
}); 
0

Można też po prostu pozycjonuj element poza płótnem, bez konieczności zmiany jego stanu widoczności DOM/CSS.

<style> .inputValue{position:absolute;left:-99999px} </style> 
<input type="text" class="inputValue" autofocus="autofocus"/> 

A następnie w dowolnym momencie, gdy wymagana jest wartość wejścia, wywołuje się poniższy skrypt.

<script> $('.inputValue').val(); </script> 
Powiązane problemy