Problème javascript

d2st3r Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
d2st3r Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voilà, je travail sur un formulaire et tente de faire une vérification à chaque touche qui est appuyé. La fonction javacript est la suivante:

function spec_char_check(fieldname)
{
var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";

for (var i = 0; i < document.glist.fieldname.value.length; i++)
{
if (iChars.indexOf(document.glist.fieldname.value.charAt(i)) != -1)
{
document.getElementById("error_" + fieldname).style.display = "block";
return false;
}
else
{
document.getElementById("error_fname").style.display = "none";
}
}

}

Mon formulaire à comme nom glist. J'ai les deux champs de texte suivant:

<input name="fname" type="text" size="38" style="margin-top:5px;" onkeydown="javascript:spec_char_check('fname');" />

<div id="error_fname" style="font-weight:bold; display:none">
Invalid characters used
</div>
<input name="lname" type="text" size="38" style="margin-top:5px;" onkeydown="javascript:spec_char_check('fname');" />

<div id="error_lname" style="font-weight:bold; display:none">
Invalid characters used
</div>

Sur mon site, quand je tappe mes caractères dans le textbox, il y a un erreur javascript et le teste ne fonctionne tout simplement pas. J'ai cherché mon erreur mais je ne trouve pas. C'est probablement une petite erreur stupide que je ne vois pas.

Merci d'avance,

d2st3r

4 réponses

Soleil
 
Bonjour!

Recherche sur Google tu trouveras tout !
0
d2st3r Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

J'ai cherché sur google mais rien qui m'aide à trouver mon erreur. D'après ce que j'ai pu voir, j'ai appelé ma fonction correctement en mettant la donné entre guillement ( spec_char_check('fname' ). Si je remplace tout les variable fieldname par le nom de la zone de texte, tout fonctionne bien. Mais aussitôt que je met la variable fieldname, plus rien ne fonctionne.

Merci,

d2st3r
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
onkeydown="javascript:spec_char_check('fname');"

perso je mettrai onkeyup

ensuite a l'appel de ta fct JS tu passes comme argument 'fname'

dans ta fonction tu mets:
document.getElementById("error_" + fieldname)....

donc ça va faire error_fname comme id a atteindre

hors dans ta page l'id du <div des erreurs est
id='error_lname'

donc javascript ne trouve pas l'id

Tu utilises IE8 dommage car si tu utilisait FireFox, il a une console d'erreurs javascrip super pour débugger. C'est peut être une occasion de l'essayer et l'essayer c'est l'adopter
0
d2st3r Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de ta réponse Alain_42. J'ai deux div. Un avec le id error_fname et l'autre avec id error_lname. Merci aussi du conseil de firefox, je n'étais pas au courant. J'ai vérifié avec firefox et l'erreur affiché est que document.glist.fieldname is undefined.
0