2013-07-05 9 views
9

Situazione:Come catturare l'input da tastiera senza campo di inserimento visibile in JavaScript

  • HTML5 con jQuery Mobile su iPad (EDIT: pagina HTML5 in un app PhoneGap)
  • tastiera esterna collegata
  • testo campo di immissione è nascosto, nessun campo di input visibile
  • nessun focus sul campo di inserimento testo -> nessuna tastiera virtuale mostrato

Obiettivo:

  • cattura ingresso tastiera senza mostrare & focalizzazione su un campo di immissione testo
  • ingresso tastiera è sono frasi variabili (ad esempio nome1, oggetto2, phrase3)
  • Basta iniziare a digitare e la pagina deve catturare che digitando

-> Come posso rilevare l'input della tastiera nel campo di input nascosto?

So che gli eventi keydown/pressione del tasto/keyup, tuttavia essi sembrano richiedere un campo di input visibile

+2

'$ (document) .on ('keyup', $ .mobile.pageContainer, function() {});' prova. o '$ ('body'). on ('keyup', function() {});' – Omar

+0

ecco un esempio funzionante. Se questo è quello che ti serve, fammi sapere. http://jsfiddle.net/Palestinian/sG9n8/ – Omar

+0

Per me, entrambe le istruzioni e la risposta seguente funzionano solo con il focus sul campo di input - ma se il campo di input è nascosto, nessun input da tastiera viene catturato. qualche insidia che ho trascurato? –

risposta

1

È possibile associare l'evento al documento in questo modo: -

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

Si può anche semplicemente posiziona l'elemento fuori area, senza la necessità di alterare il suo stato di visibilità DOM/CSS.

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

E quindi in qualsiasi momento in cui si richiede il valore dell'input si chiama lo script seguente.

<script> $('.inputValue').val(); </script>