Probleme dans le code

hiba124 Messages postés 4 Statut Membre -  
hiba124 Messages postés 4 Statut Membre -
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);

3 réponses

  1. Utilisateur anonyme
     
    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
  2. Zephirr Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   100
     
    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
    1. hiba124 Messages postés 4 Statut Membre
       
      ms ça marche pas :/
      0
  3. hiba124 Messages postés 4 Statut Membre
     
    merci bien :)
    0