J'utilise la fonction de saisie semi-automatique dans jQuery UI 1.8.6. Et je veux mettre en évidence les résultats correspondants. Mais pour une raison quelconque, lorsque j'utilise une regex pour ajouter des tags "forts" autour des caractères correspondants, la chaîne est en train d'être échappée. Donc, je vois [strong]matching chars[/strong]
, au lieu de balisé le texte.Mettre en surbrillance la saisie semi-automatique de l'interface utilisateur jQuery
C'est le javascript Je suis actuellement en utilisant:
$(function() {
$("#autocompleteinputfield").autocomplete({
source: function (request, response) {
$.ajax({
url: "someservice",
type: "GET",
dataType: "json",
data: { filter: request.term, maxResults: 10 },
success: function (data) {
response($.map(data, function (item) {
// return { label: item.ID + ' - ' + item.Name, id: item.ID, value: item.Name }
var regex = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + request.term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi");
return { label: (item.ID + ' - ' + item.Name).replace(regex, "<strong>$1</strong>"),
id: item.ID,
value: item.Name
}
}))
}
});
},
select: function (event, ui) {
alert(ui.item ? ("You picked '" + ui.item.label + "' with an ID of " + ui.item.id)
: "Nothing selected, input was " + this.value);
}
});
});
Mise à jour:
"entrée" est le texte entré dans une zone de texte (dans ce cas: [input type = "text" id = "autocompleteinputfield" /]
sortie ressemble à ceci:
[{ "description": "rien de significatif", "ID": 3, "Nom": "Joe public"}]
Lorsque les données ajax est dans la réponse, à quoi ça ressemble? –