2010-10-04 11 views
6

Por ejemplo si tengo¿Hay una manera de evitar mostrar el teclado en Safari Mobile

<input type="text" id="myid"> 

y estoy usando el ipad, cuando me concentro en esta entrada, el iPad podría mostrar automáticamente el teclado. ¿Hay alguna manera de evitar eso? Gracias

+1

y cómo un usuario ingresa datos en ese campo si el teclado no se muestra? –

+1

Aparecerá una tabla al enfocar en el campo de entrada para que se pueda seleccionar un elemento. Una etiqueta de selección simple no funcionaría porque cada opción tendrá múltiples elementos de datos. –

Respuesta

2

No deje que el foco vaya a ese campo. Use un controlador de eventos para evitar el comportamiento predeterminado. El controlador de eventos sería algo como esto:

function onFocus(e) { 
    e.preventDefault(); 
    // you could change the color of the field to indicate this is the active field. 
} 

Su código de manejo de tabla podría llenar este campo sin el navegador cada vez se centra en él.

3

La mejor solución que he encontrado es colocar un div invisible sobre el área de texto. Esto evita que el área de texto reciba eventos táctiles y esto evita que aparezca el teclado. Capture eventos en el div y, si desea hacer que la zona editable de texto llame a .focus(), aparecerá el teclado.

El uso de event.preventDefault no funciona muy bien. Hace que la pantalla "salte" cuando aparece el teclado y luego desaparece de inmediato.

11

Sí, sólo tiene que hacer que el elemento de sólo lectura

<input type="text" id="myid" readonly="readonly" /> 

Tenga en cuenta que esto no funciona con el elemento. Creo que podría ser un error.

Cuestiones relacionadas