6 votes

Pourquoi l'autocomplétion de l'interface utilisateur de Jquery ne prend-elle plus en charge ces fonctions ?

L'équipe de jquery UI a un blog sur la façon de remplacer l'ancienne autocomplétion et justifie qu'il peut reproduire toutes les anciennes fonctionnalités et options . D'après mes tests, je ne pense pas qu'ils puissent se reproduire :

  1. selectFirst si vous avez une source de données distante
  2. selectFirst ou mustMatch si vous utilisez multiple : vrai

je vois cette question sur la façon de reproduire certaines des anciennes autocomplétions. options de ce plugin Il existe une réponse choisie, mais elle ne tient pas compte de ces situations.

L'interface utilisateur jquery les gens ont un exemple de réplication selectFirst dans le nouvel autocomplete Mais sauf erreur de ma part, cela ne fonctionne qu'avec une source de données locale (pas avec une source de données distante car le menu n'est généralement pas rempli avant que l'événement ne soit appelé).

J'ai raté quelque chose ou ces scénarios ne sont tout simplement pas pris en charge par l'autocomplétion de l'interface utilisateur de jquery ?

6voto

jrumbinas Points 330

Ces scénarios sont effectivement pris en charge, mais vous devez étendre le widget ui.autocomplete pour obtenir le comportement souhaité. Un exemple rapide pour implémenter la fonctionnalité selectFirst :

$.widget( "ui.autocomplete2", $.ui.autocomplete, {
    _renderMenu: function( ul, items ) {
        var self = this;
        $.each( items, function( index, item ) {
            self._renderItem( ul, item );
        });
        // setTimeout is needed because jQueryUI automaticaly removes
        // active item just after menu rendering
        setTimeout( function(){
            self.menu.activate(
                // fake event object. Needed to avoid jQueryUI error 
                // (unsafe property access)
                {'type':'fake'}, 
                ul.find(':first') );
        }, 1);
    }
});

Attention : Vérifiez toujours si un nouveau widget est toujours compatible avec la nouvelle version de jQuery UI !

Mise à jour : Un exemple de mise en œuvre de mustMatch peut être trouvé ici : http://jqueryui.com/demos/autocomplete/combobox.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X