2010-06-24 6 views
0

J'ai un champ de saisie de texte dans ma page Web que j'utilise pour collecter une date (via les outils jQuery .dateinput). L'utilisateur n'a pas besoin de pouvoir taper dans le champ. Une boîte de dialogue apparaît lorsque le champ est cliqué. Ceci est un problème sur mon Motorola Droid, parce que je ne veux pas que le clavier logiciel apparaisse quand on clique sur le champ.L'entrée en lecture seule dans Android Webkit ne fonctionne pas

J'ai essayé input.blur() sur le focus et en réglant le champ sur disabled et readonly. La définition du champ sur désactivé a des effets secondaires indésirables. Définir le champ à readonly fonctionne dans tout sauf le navigateur Android. Le navigateur semble reconnaître l'attribut "readonly" (ou readOnly via javascript), MAIS le champ ne devient pas readonly. Lorsque vous cliquez dessus, le clavier logiciel apparaît toujours et vous permet de modifier le champ. Je suppose que c'est un bug dans le navigateur Android. Quelqu'un peut-il trouver une alternative intelligente?

+0

Il y a eu une [soumission de bogue officielle] (http://code.google.com/p/android/issues/detail?id=3842), mais l'idée semble être de publier une nouvelle version du système d'exploitation plutôt qu'un navigateur. mettre à jour. Supposément, il est corrigé dans Froyo (2.2) ce qui ne permet pas vraiment à quiconque s'attend à ce que les clients précédents utilisent leur site. Peu importe ce que j'ai truqué dans la gestion des événements, je ne pouvais pas empêcher Android de rester sur ce terrain et de remonter le clavier. Android a complètement ignoré ce hack jQuery: '$ (" input [readonly = readonly] "). Unbind ('focus'). Focus (function() {$ (" input.someOtherInput "). Focus();});' – patridge

Répondre

0

J'ai utilisé une solution de contournement - puisque je n'avais pas besoin d'éditer réellement dans le champ de saisie (comme vous, je sautais un sélecteur de date), j'ai changé pour un style similaire. Le code est un peu trivial une fois que vous avez l'astuce, et il est vraiment spécifique à l'application, donc je n'en ai pas vraiment à voir.

Questions connexes