2009-03-26 4 views
0

Je souhaite être en mesure de rechercher une liste de noms complets. Les démos de saisie semi-automatique que j'ai vues ont toutes été recherchées depuis le début. Ce n'est pas bon car je veux des correspondances sur le nom de famille aussi.Puis-je faire des recherches en texte intégral avec jquery Autocomplete?

Je peux vivre sans recherche de texte intégral s'il suit au moins les limites de mots. Sorta aime la recherche d'étiquette ici. Comment ça s'est fait?

Salutations

Répondre

0

Vous pouvez. Prenez simplement les éléments d'une fonction côté serveur qui effectue la recherche proprement dite. Par exemple un serveur SQL. Vous devriez considérer la performance. Un nombre élevé de lignes peut prendre assez longtemps pour avoir une autocomplétion "floconneuse".

+0

Je n'ai que comme 300 articles. Ajax semble un peu trop tuer. – Jordie

0

Voici un extrait qui recherche à la fois les noms et prénoms, même lorsque vous avez plusieurs mots partiels dans votre terme de recherche:

var arrayOfNames = [{first:"John", last:"Box"},{first:"Rachel", last:"Park"} 
       ,{first:"Rachel", last:"Dark"},{first:"Rachel", last:"Luck"}]; 

$("#input").autocomplete({ 
    source: function(request, response) { 
     var names = []; 
     var searchTerms = request.term.split(" ");; 
     $.grep(arrayOfNames, function(person, i) { 
      var matches = 0; 

      $.each(searchTerms, function(i, term) { 
       if(person.first.indexOf(term)>=0 || person.last.indexOf(term)>=0) 
        matches++; 
      }); 

      if(matches == searchTerms.length) 
       names.push({value:person.first+" "+person.last}); 
     }); 

     response(names); 
    } 
}); 

voir en action ici: http://jsfiddle.net/t29req1s/1/

Questions connexes