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 60
|
function Find(c){
var arr=c.texte.split(' '),Exp,returned=[];
switch(arr.length){
case 1:
Exp="^"+arr[0];
break;
case 2:
if(arr[1].length>0){
Exp="^"+arr[0]+"(.{1,}"+arr[1]+".{1,})+$";
}else if(arr[1].length==0){
Exp="^"+arr[0]+"(.{1,})+$";
}
break;
case 3:
console.log('cas pas encore configuré');
break;
console.log(Exp);
}
var Reg=new RegExp(Exp,'i');
returned=$.grep(c.json,function(k,v){
return Reg.test(k.label);
});
return returned;
}
function customFilter(array, terms) {
return Find({json:array,texte:$('#recherche').val()}) ;
}
$(function(){
$('#recherche').autocomplete({
multiple: true,
mustMatch: false,
source: function( request, response ) {
$.ajax( {
dataType: "json",
url: 'searchJSON.json',
crossDomain : true,
data: {
term: request.term
},
cache:false,
success: function( data ) {
var results=customFilter(data,request.term.toLowerCase());//GO ici
$("#count").text( results.length+" résultat trouvé");
response(results);
}
,error:function(err){alert(err);}
,focus: function() {
return false;
}
} );
}
});
}); |
Partager