2010-09-16 7 views
0

mon tableau d'entrée a:jQuery ajouter html aux résultats

results[num_row] = { 
    'title': title, 
    'url': url, 
    'support_url': support_url, 
    'description': description, 
    'contacts': contacts 
}; 

-je obtenir les résultats de retour:

function formatItem(item){ 
    var highlight = $.Autocompleter.defaults.highlight; 
    var temp = '<span class="title">' + highlight(item.title, term) + '</span>'; 
    temp += '<br />&nbsp;&nbsp;' + item.description; 
    return temp; 
} 

function prep(){ 
$("#searchbox").autocomplete(results,{ 
    width:500, 
    scroll:false, 
    formatItem: formatItem, 
    highlight: false 

}).result(function(event, item) { 
    location.href = item.url; 
}); 
} 

Je voudrais être en mesure d'ajouter des balises à ce qui est de retour si que je peux remplacer les couleurs en utilisant css. Par exemple, je voudrais faire quelque chose comme:

formatItem: function(item) { 
    var temp = '<span class="title">' + item.title + </span> + '<br />&nbsp;&nbsp;' + <span class="description"> + item.description + </span>; 
    return temp; 
} 

Lorsque je tente d'ajouter les balises en ligne comme ça, ça change la recherche d'entrée critera d'avoir cette étiquette littérale. Donc, je dois réellement taper <span class="title">Search String afin de rechercher au lieu de Search String.

Merci.

+0

J'ai corrigé le formatage, mais il y a des erreurs de syntaxe dans les 2ème et 3ème blocs de code. Je ne suis pas sûr qu'ils soient intentionnels. Est-ce que tu les vois? Veuillez les corriger pour éviter les harengs rouges. – BalusC

+0

Merci de faciliter la lecture. Je ferai en sorte de le faire à l'avenir. S'il vous plaît dites-moi quelles sont les erreurs de syntaxe. C'est ma première fois avec jQuery et javascript pour la plupart, connaissez-vous la réponse à ma question? Merci encore. – specked

+0

Vous avez un '' 'supplémentaire (ce qui fait que la moitié du code est rouge), et vous avez un'} 'errant. – strager

Répondre

0

Votre fonction est ensuite exécutée par options.highlight. Essayez spécifiant une fonction de surbrillance qui retourne la chaîne source:

$("#searchbox").autocomplete(results, { 
    formatItem: function(item, foo, bar, term) { 
     var highlight = $.Autocompleter.defaults.highlight; 
     var temp = '<span class="title">' + highlight(item.title, term) + '</span>'; 
     temp += '<br />&nbsp;&nbsp;' + item.description; 

     return temp; 
    }, 

    highlight: false 
}).result(function(event, item) { 
    location.href = item.url; 
}); 

Assurez-vous échapper item.title pour prévenir les attaques XSS!

+0

Je pense que vous avez raison. J'ai regardé cette question et il semble être à peu près le même problème. Essayer de mettre en œuvre maintenant. http://stackoverflow.com/questions/3381859/jquery-autocomplete-plugin-custom-highlight-function – specked

+0

Quelqu'un pourrait-il m'aider avec le code dont j'ai besoin pour que la surbrillance fonctionne? J'ai essayé ce http://stackoverflow.com/questions/3381859/jquery-autocomplete-plugin-custom-highlight-function mais n'était pas capable de le pirater. – specked

+0

@specked, Voir mon édition. Je ne sais pas comment le plugin autocomplete fonctionne, donc c'est surtout une supposition. – strager

Questions connexes