1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| $j('#id_auto').autocomplete({
source : function(request, response) {
$j.ajax({
url : urlAuto,
dataType : "json",
type : "POST",
data : {
sid : sid,
term : request.term
},
success : function(data) {
taille = data.liste.length;
if (taille) {
data.liste.push({
"information" : taille + " élément(s) sur un total de " + data.nombreTotal
})
response($j.map(data.liste, function(item) {
if (item.information) {
return {
label : item.information,
value : "",
info : true
}
} else {
term = $j.ui.autocomplete.escapeRegex(request.term);
strRetour = (item.codeCim10 + " - " + item.libCim10Long);
listeTerme = term.match(/\w+/g);
for (var i = 0, j = listeTerme.length; i < j; i++) {
itemTerm = listeTerme[i];
strRetour = strRetour.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + itemTerm + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
};
return {
label : strRetour,
value : item.codeCim10,
}
}
}));
} else {
response([{
label : "Il n'y a aucun élément correspondant à votre recherche",
value : "val",
info : true
}]);
}
}
});
},
minLength : 2,
delay : 500,
select : function(event, ui) {
this.close
}
}).data("autocomplete")._renderItem = function(ul, item) {
if (item.info) {
return $j("<li></li>").data("item.autocomplete", item).text(item.label).appendTo(ul);
} else {
return $j("<li></li>").data("item.autocomplete", item).append("<a>" + item.label + "</a>").appendTo(ul);
}
}; |
Partager