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