Probleme dans le code

Fermé
hiba124 Messages postés 3 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 16 janvier 2015 - 15 janv. 2015 à 18:50
hiba124 Messages postés 3 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 16 janvier 2015 - 16 janv. 2015 à 01:25
Bonjour,

j'aimerai savoir la correction de ce code:


function validateForm(){
var atpos = x.indexOf("@");
var dotpos = x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) {
document.getElementById('mail').innerHTML="Not a valid e-mail address";

}

var element = document.getElementByName["userEmail"].value;


element.keyup=validateForm;
var myfuction=validateForm;

element.addEventListener('keyup',myfuction, false);
A voir également:

3 réponses

Bonjour

En fait, il n'y a pas grand chose de juste dans ton code :

1 - Où est définie la variable x utilisée dans ta fonction validateForm ?

2 - Il y avait le problème d'accolade signalé par Zephirr - Perso, j'aurais plutôt ajouté une accolade fermante, mais sa solution est valable aussi.

3 et 4 -
getElementByName["userEmail"]
comporte deux erreurs : document n'a pas de méthode getElementByName. Je connais getElementById et getElementsByName (avec un "s" à Elements, et c'est logique car il peut y en avoir plusieurs qui ont le même nom). Sauf raison bien particulière, utilise toujours getElementById.
De plus, il s'agit d'une méthode, c'est à dire d'une fonction : ses paramètres doivent être mis entre parenthèses, pas entre crochets.

5 - Quand tu auras corrigé
var element = document.getElementByName["userEmail"].value;
, la variable element contiendra donc une valeur (texte) et non pas un élément. Donc écrire plus loin element.keyup ou element.addEventListener est incorrect.

6 -
element.keyup=validateForm;
: Ce n'est pas .keyup, mais.onkeyup

7 -
var myfuction=validateForm;
ce n'est pas incorrect, mais bien inutile.

8 -
element.addEventListener('keyup',myfuction, false);
, ça fait double emploi avec
element.keyup=validateForm;


À part ça, je ne vois rien, ce qui ne veut pas dire qu'il n'y a pas d'autres erreurs ...

Au fait, tu sais que ton navigateur dispose d'une console javascript qui signale les erreurs ?
2
Zephirr Messages postés 317 Date d'inscription mardi 30 décembre 2014 Statut Membre Dernière intervention 6 novembre 2015 100
Modifié par Zephirr le 15/01/2015 à 19:05
Accolade en trop a la fin du if:
 
function validateForm(){ 
var atpos = x.indexOf("@"); 
var dotpos = x.lastIndexOf("."); 
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
document.getElementById('mail').innerHTML="Not a valid e-mail address"; 

} 

var element = document.getElementByName["userEmail"].value; 


element.keyup=validateForm; 
var myfuction=validateForm; 

element.addEventListener('keyup',myfuction, false);  
0
hiba124 Messages postés 3 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 16 janvier 2015
15 janv. 2015 à 19:21
ms ça marche pas :/
0
hiba124 Messages postés 3 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 16 janvier 2015
16 janv. 2015 à 01:25
merci bien :)
0