2012-03-21 12 views
10

Estoy usando una entrada de mespicker (similar a jQuery UI datepicker) para un campo de vencimiento de tarjeta de crédito.Cómo desactivar el teclado de iPhone para un campo de entrada específico en la página web

Necesito suprimir el teclado del iPhone porque oculta el selector de mes.

He intentado configurar el campo para que sea de solo lectura y no es una solución aceptable: en Safari iOS 5.1, los campos de solo lectura se omiten en la navegación por el teclado (botones prev/next en el teclado). Difuminar el campo tampoco es aceptable porque desencadena la validación (también estamos utilizando la validación de jQuery).

¿Hay alguna manera de apagar el teclado del iPhone en un solo campo sin configurarlo ni desenfocarlo?

Respuesta

5

No he encontrado el camino para ocultar el teclado. Pero, ¿has pensado otra forma de mostrar "entrada"? Una opción sería usar <input type="month" /> que trae el selector de mes nativo en iOS5.

La segunda opción sería peinar, por ej. elemento span como elemento de entrada (-webkit-appearance no funciona en iOS) y agrega tabindex para el elemento. Esto también podría funcionar, aunque no conozco el selector de mes que estás usando.

Tercera opción: ¿no puede evitar el proceso de validación cuando el desenfoque del campo se desencadena manualmente?

+1

Nice! '' arroja un mejor selector de mes para iPhone. Opera 11.6 muestra un selector de fecha completo, así que tendré que trabajar en eso de alguna manera. Esto no responde la pregunta tal como se le preguntó, pero parece que resuelve el problema. –

+1

Así que hice una comprobación de agente de usuario para iPhone y iPod, y establecí el atributo de tipo en "mes" si es verdadero y solo cargué el marcador de mes si es falso. Funciona genial. Volveré a visitar con un screensize + ontouchstart en lugar de un agente de usuario. ¡Muchas gracias! –

2

que tenían un mismo tema en Drupal, donde los campos de entrada se Anexión de forma dinámica, por lo que añade algunos js, la comprobación de Iphone/Ipad y añade "sólo lectura" propiedad

var checkUserAgent = navigator.userAgent; 
    if (checkUserAgent.match(/iPad/i) || checkUserAgent.match(/iPhone/i)) { 
     var checkBabyId1 = $('#babys_due_date_id').length > 0; 
     if (checkBabyId1 == true) { 
      $('#babys_due_date_id').find('input').prop('readonly', true); 
     } 
    } 
Cuestiones relacionadas