Trouvez l'erreur!

Trouvez l'erreur! - HTML/CSS - Programmation

Marsh Posté le 24-07-2005 à 21:39:42    

salut à tous!
j'ai un problème avec un javascript cencé remplacer les lettres avec accents par les lettres sans accents (remplacer "é" par "e" ) dans un formulaire de recherche... voila le script
aidez moi svp!
 
<html>
 
<head>
<script language=javascript>
function noaccent(f) {
  temp = f.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
}
</script>
 
</head>
<body>
 
<form action=http://www.google.fr/search method=get name=f>
<input maxLength=256 size=40 name=q value=""><input type=submit value="Recherche" onClick="noaccent(f)" name=btnG>
<p><font size=-1><input id=all type=radio name=meta value="" checked><label for=all>  
Web</label><input id=lgr type=radio name=meta value="lr=lang_fr" ><label for=lgr> Pages francophones</label><input id=cty type=radio name=meta value="cr=countryFR" ><label for=cty>Pages : France</label></font></p>
 
</body>
</html>


Message édité par noel885 le 24-07-2005 à 22:06:57
Reply

Marsh Posté le 24-07-2005 à 21:39:42   

Reply

Marsh Posté le 24-07-2005 à 21:45:56    

et c'est quoi ton problème ?

Reply

Marsh Posté le 24-07-2005 à 21:54:06    

erreur de script...
une fenetre s'ouvre avec comme erreur: Cet objet ne gère pas cette propriété ou cette méthode
ligne:7
car:3

Reply

Marsh Posté le 24-07-2005 à 22:09:39    

Heu deja si je me trompe pas, en JS les lignes doivent finir par un ; (enfin, ça doit faire 3 ans que j'ai plus touché a du JS, je suis pas sur de mon coup). A part ça le message me semble assez clair ... "l'objet" f ne supporte pas la methode replace..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-07-2005 à 22:10:00    

Reply

Marsh Posté le 24-07-2005 à 22:11:16    

bon d'abord :  
 
met ton code entre balise [ code] [/code ] (sans les espaces)
 
ton onclick il a rien à faire ici, d'abord cette action doit être effectuée lors du submit du formulaire et donc se trouver dans le <form> via la propriété onsubmit.
 
ensuite la fonction appelée ne doit pas etre noaccent(f). Car f ne représente rien ici, même pas le formulaire
il faut lui indiquer ton objet et ici c'est le input qu'on indique,  
 
voici ton formulaire corrigé :

Code :
  1. <form action="http://www.google.fr/search" method="get" name="f" onsubmit="noaccent(document.getElementById('Champrecherche')">
  2. <input maxLength=256 size=40 name=q value="" id="Champrecherche">
  3. <input type=submit value="Recherche" name=btnG>
  4. <input id=all type=radio name=meta value="" checked>
  5. <label for=all> Web</label>
  6. <input id=lgr type=radio name=meta value="lr=lang_fr" ><label for=lgr> Pages francophones</label>
  7. <input id=cty type=radio name=meta value="cr=countryFR" ><label for=cty>Pages : France</label>
  8. </form>


 
ensuite ton code javascript doit etre le suivant :

Code :
  1. function noaccent(monObjet) {
  2.   var f = monObjet.value;
  3.   f = f.replace(/[àâä]/gi,"a" );
  4.   f = f.replace(/[éèêë]/gi,"e" );
  5.   f = f.replace(/[îï]/gi,"i" );
  6.   f = f.replace(/[ôö]/gi,"o" );
  7.   f = f.replace(/[ùûü]/gi,"u" );
  8.   monObjet.value = f;
  9. }


Message édité par gatsusat le 24-07-2005 à 22:31:47
Reply

Marsh Posté le 24-07-2005 à 22:16:31    

merci à tous
je vais tester ca tout de suite  gatsusat !
je vous dirai si ca a marché!

Reply

Marsh Posté le 24-07-2005 à 22:24:22    

Gatu , c'est volontaire le fait que tu n'aies pas mis de ; apres les lignes du replace?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-07-2005 à 22:31:30    

un oubli, de toute facon son erreur de situait lors de l'appel de la fonction


Message édité par gatsusat le 24-07-2005 à 22:32:05
Reply

Marsh Posté le 24-07-2005 à 22:33:01    

je crois qu'il peut même mettre toutes ses fonctions sur une seule et meme ligne

Reply

Marsh Posté le 24-07-2005 à 22:33:01   

Reply

Marsh Posté le 24-07-2005 à 22:42:32    

Dans tous les cas ca marche les gars!
merci et à bientot!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed