Bonjour,
Alors voilà je suis un débutant en javascript. Je cherche à développer un moteur de recherche interne à un site internet. J'ai réussi à trouver un script de moteur, ça pas de problème, mais en plus du champ de recherche libre, je voudrais ajouter un bouton avec une liste de menus déroulants déjà prédéfinis.
Voici le script de l'appel des fonctions qui premettent la recherche et l'affichage des résultats :
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
| function SearchItem(txt) {
txt = unescape(txt);
txt = txt.replace(/\+/g," ");
var n=tjs_base.nb_item;
var indice=-1;
if (txt=="Saisir un mot clé") {alert("Entrez un mot pour la recherche"); }
else{
document.forms["tjs_search"].elements["mot"].value=txt;
var Z=""; var nb=0;
for (var i=0; i<n; i++) {
if (tjs_base[i].cle.toUpperCase().indexOf(txt.toUpperCase(),0)!="-1") {
Z+="<A target='"+tjs_base.target+"' href='"+tjs_base[i].page+"'>"+tjs_base[i].desc+"</A> <SMALL>("+tjs_base[i].page+")</SMALL><BR>"
nb++;
}
}
if (nb>0) {
if (nb==1) {Z="Un résultat trouvé pour la recherche sur [<B>"+txt+"</B>] : <BR>"+Z;}
else {Z=nb+" résultats trouvés pour la recherche sur [<B>"+txt+"</B>] : <BR>"+Z;}
}else{Z="Aucun résultat pour la recherche sur [<B>"+txt+"</B>]<BR>Vérifiez l'orthographe ou essayez un autre mot clé !";}
document.write(Z);
}
}
function TJS_Search(f) {
if (f.mot.value!=""){f.submit();}
}
function TJS_PrintResult() {
var url=document.location.href;
if (url.indexOf("?mot=",0) > 0) {
var mot=url.substring(url.indexOf("?mot=",0)+5);
SearchItem(mot);
}
} |
Voici maintenant le script de mon champ de recherche :
1 2 3
| <font size="-1" color="#000099">
<input name="mot" size=20 maxlength=35 value="Saisir un mot clé" onFocus="if (this.value=='Saisir un mot clé') {this.value=''}" onBlur="if (this.value==''){this.value='Saisir un mot clé'}">
</font> |
Et celui de mon bouton qui active la recherche :
<INPUT TYPE="button" name="bouton" VALUE="Rechercher" onClick="TJS_Search(this.form)">
Lorsque j'essaie donc de mettre un champ avec des requêtes prédéfinies, le message d'alerte "veuillez entrer un mot pour la recherche" (présent au début du script pour l'appel des fonctions) apparaît. Voici le script du bouton en question :
1 2 3 4 5
| <select name="select" size="1" multiple onFocus="if (this.value=='Saisir un mot clé') {this.value=''}" onBlur="if (this.value==''){this.value='Saisir un mot clé'}">
<option>1</option>
<option>2</option>
<option>3</option>
</select> |
Quelqu'un d'expérimenté peut-il m'aider à corriger ce bug, et surtout à comprendre d'où il vient ?
Encore merci d'avance
Partager