Problème javascript

Fermé
d2st3r Messages postés 6 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 4 février 2010 - 21 janv. 2010 à 06:41
d2st3r Messages postés 6 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 4 février 2010 - 21 janv. 2010 à 21:23
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

Bonjour!

Recherche sur Google tu trouveras tout !
0
d2st3r Messages postés 6 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 4 février 2010
21 janv. 2010 à 17:39
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 janv. 2010 à 19:48
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 mercredi 17 décembre 2008 Statut Membre Dernière intervention 4 février 2010
21 janv. 2010 à 21:23
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

Discussions similaires