2010-08-02 6 views
0

Je suis en train de forcer le panneau de saisie semi-automatique jQueryUI/liste pour afficher au moins un élément par défaut (par exemple « Ajouter un nouvel élément ») lorsque le pas de match a été trouvé. L'élément doit pouvoir se lier avec un gestionnaire d'événements.Comment afficher au moins un élément dans le panneau jQueryUI de saisie semi-automatique quand aucun résultat trouvé

Jusqu'à présent, j'avais essayé de résoudre ce problème en ajoutant un panneau pseudo AC lorsque le vrai panneau AC se trouve caché. Je me demande également s'il est possible de mettre à jour dynamiquement la "source" (dans l'option de jqueryui.autocomplete), en insérant un élément dans l'ensemble de données, afin que tout type de texte dans la zone de texte soit détecté et donc être affiché. (Désolé, vraiment difficile d'expliquer cette partie).

Y at-il une meilleure façon d'y parvenir?

Répondre

0

je suis venu avec un travail autour de l'utilisation du à distance source de données. (http://jqueryui.com/demos/autocomplete/#remote)

passer simplement un élément par ajax (l'élément par défaut, à partir du serveur), quand aucun résultat trouvé.

Résolu!

0

vous pourriez passer outre la fonction de _renderItem et Possédez-vous afficher et ajouter le texte «Ajouter un nouvel élément.

quelque chose comme ceci: (avertissement non testé)

$('#yourinputelementid').data("autocomplete")._renderMenu: function(ul, items) { 
     var self = this; 
     $.each(items, function(index, item) { 
      self._renderItem(ul, item); 
     }); 
     var newitem = $("<li>Add New Item</li>"); 
     newitem.click(function(event) { 
      alert("newitem test"); 
     }); 
     self.append(newitem); 
    } 
.data("autocomplete")._renderItem = function(ul, item) { 
    return $("<li></li>") 
     .data("item.autocomplete", item) 
     .append("<a>" + item.label + "<br>" + item.desc + "</a>") 
     .appendTo(ul); 
}; 

see here

+0

Oui, je l'ai essayé cela avant, mais le problème est que le menu affiché wont en premier lieu (en raison sans correspondance trouvée) et donc le « newItem » ne sera pas affiché. – Yman

Questions connexes