2009-02-09 10 views
2

J'ai une chaîne de valeurs séparées par un espace que je retourne à l'appel Jquery, mais il ne sépare pas les mots en rangées. Les données doivent-elles être renvoyées sous forme de chaîne ou de liste ou autre?Format de résultats JQuery AutoComplete?

Répondre

5

Par défaut, il veut que les résultats soient séparés par des retours à la ligne. Si vous fournissez une liste de valeurs séparées par des espaces, vous devrez fournir une fonction d'analyse qui prendra les données retournées et les transformera en tableau. La même chose est vraie si vous fournissez une liste de valeurs à la place.

Voici un exemple d'un projet sur lequel je travaille qui renvoie une liste de chaînes via JSON à partir d'une action MVC.

$('#eventName').autocomplete('<%= Url.Action("SearchEvent", "Donor") %>', { 
    dataType: "json", 
    formatItem: function(data,i,max,value,term){ 
     return value; 
    }, 
    parse: function(data){ 
     var array = new Array(); 
     for(var i=0;i<data.length;i++) 
     { 
      array[array.length] = { data: data[i], value: data[i], result: data[i] }; 
     } 
     return array; 
    } 
}); 
+0

Oui, le "parse" override est le chemin à parcourir. jQuery a vraiment besoin d'une meilleure documentation pour sa saisie semi-automatique (à partir de ce commentaire, il est toujours "prévu d'être publié avec jQuery 1.7"). Mais si vous faites pour documenter le code existant, ils devraient tout documenter. Le seul problème avec l'utilisation de l'override d'analyse est maintenant que toutes les fonctions de l'autocompleter seront passées au nouveau tableau(). Donc, vous devez en tenir compte. tvanfosson a montré comment vous tenez compte de la mise en forme de l'affichage avec la substitution de formatItem. Notez également que vous devrez peut-être remplacer la méthode result(). – eduncan911

1

Il existe un autre plug-in de saisie semi-automatique qui souhaite avoir une chaîne séparée par le '|' caractère comme ceci:

item 1 | item 2 |

Vous voudrez peut-être vérifier les documents de celui que vous utilisez!

Questions connexes