2010-12-09 47 views
4

La saisie sous les résultats de saisie semi-automatique jQuery est activée lors de la sélection du résultat

Lorsque je commence à taper le nom de l'espèce que je recherche, le widget jQuery autocomplete est livré avec une liste déroulante et quelques résultats. Génial!!

Le seul problème est que lorsque je sélectionne un élément de la liste, "l'élément d'entrée qui se trouve sous cet élément de liste est activé". Et les résultats dans une liste déroulante native android sur le dessus. J'ai essayé d'utiliser des z-index sur la boîte de résultats de saisie semi-automatique et sur les éléments d'entrée. Aucun travail.

Des idées pour quelqu'un?

Répondre

-1

L'annulation de la propagation d'un événement peut être une solution pour résoudre ce problème. Cette question pourrait aider à résoudre le problème que vous rencontrez. Event propagation in Javascript

Cela peut également se révéler utile: http://www.quirksmode.org/js/events_order.html

+0

Je suis juste occupé avec d'autres choses en ce moment. Mais votre réponse est grandement appréciée. Je vais y regarder et revenir vers vous avec les résultats. – Timo

1

Eh bien, ni la propagation ni les indices z semblent résoudre le problème.

La seule façon que j'ai trouvée est de mettre en mode désactivé d'autres champs (c'est-à-dire tous sauf un qui est complété automatiquement).

Ainsi, lorsque la boîte de remplissage automatique est ouvert, je mis toutes les autres entrées pour personnes handicapées, et les remettre à zéro une fois que la boîte ferme:

$("#venue_name").autocomplete({ 
    minLength: 2, 
    source: venueData, 
    open: function(event, ui) { // disable other inputs 
     $("input#venue_address").attr("disabled", "disabled"); 
     $("input#venue_cross_street").attr("disabled", "disabled"); 
     $("input#venue_city").attr("disabled", "disabled"); 
    }, 
    close: function(event, ui) { // re-enable other inputs 
     $("input#venue_address").removeAttr("disabled"); 
     $("input#venue_cross_street").removeAttr("disabled"); 
     $("input#venue_city").removeAttr("disabled"); 
    } 
}); 

Vous pouvez améliorer le code ci-dessus, par exemple, en mettant éléments être désactivé dans le tableau etc, mais la logique de base reste la même: désactiver les éléments, de sorte que Android ne les met pas en surbrillance lorsque la boîte de saisie automatique est activée, et les réactiver une fois la boîte de saisie automatique terminée.

+0

J'ai rencontré le même problème sur le chrome et la désactivation de la liste déroulante sous-affectée permettait de sélectionner un peu plus le choix de saisie semi-automatique. Je vais juste le cacher au lieu de le désactiver. – Cymbals