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 61
|
//exemple d'un tableau de donnees a faire passer avec deux colonnes [0]=le champs normal et [1]=version sans accents
var aListeProduits=new Array();
aListeProduits.push(Array('éléphant','elephant'));
aListeProduits.push(Array('été','ete'));
aListeProduits.push(Array('table','table'));
//fonction de scriptaculous a appeler
monSelector=function (instance) { //fonction de selection des resultat de l'autocompleter
var ret = []; // Beginning matches
var partial = []; // Inside matches
var entry = instance.getToken();
var count = 0;
entry=noaccent(entry);
for (var i = 0; i < instance.options.array.length &&
ret.length < instance.options.choices ; i++) {
var elem = instance.options.array[i][1];
var elemDisplay = instance.options.array[i][0];
var foundPos = instance.options.ignoreCase ?
elem.toLowerCase().indexOf(entry.toLowerCase()) :
elem.indexOf(entry);
while (foundPos != -1) {
if (foundPos == 0 && elem.length != entry.length) {
ret.push("<li><strong>" + elemDisplay.substr(0, entry.length) + "</strong>" +
elemDisplay.substr(entry.length) + "</li>");
break;
} else if (entry.length >= instance.options.partialChars &&
instance.options.partialSearch && foundPos != -1) {
if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
partial.push("<li>" + elemDisplay.substr(0, foundPos) + "<strong>" +
elemDisplay.substr(foundPos, entry.length) + "</strong>" + elem.substr(
foundPos + entry.length) + "</li>");
break;
}
}
foundPos = instance.options.ignoreCase ?
elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
elem.indexOf(entry, foundPos + 1);
}
}
if (partial.length)
ret = ret.concat(partial.slice(0, instance.options.choices - ret.length));
return "<ul>" + ret.join('') + "</ul>";
}
//fonction pour enlever les fonctions (ya surement mieux..)
function noaccent(chaine) {
temp = chaine.replace(/[àâä]/gi,"a")
temp = temp.replace(/[éèêë]/gi,"e")
temp = temp.replace(/[îï]/gi,"i")
temp = temp.replace(/[ôö]/gi,"o")
temp = temp.replace(/[ùûü]/gi,"u")
return temp
} |
Partager