Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2011, 23h55   #1
Invité régulier
 
Inscription : février 2010
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 23
Points : 8
Points : 8
Par défaut message d'erreur : Fonction indéfinie

bonjour,

j'ai réaliseé une petite page de test sans prétention avec du javascript et firefox me signale que les deux fonction sont indéfinies. j'ai parcouru ce forum et lu une contribution sur un cas indentique et le prblèblème viendrait d'une erreur de syntaxte quelque part dans la page, J'ai beau regarder et re-regarder cela me semble correct.

Si quelqu'un pouvait jeter un oeil neuf sur le code suivant je lui en serait grandement reconnaissant.

Merci par avance pour votre aide.
Kiko.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
<html>
  <head>
    <title>Identification</title>
 
    <script type='text/javascript'>
      fuction getId() {
        ireponse = getElementById('reponse');
        ireponse.value='Utilisateur et/ou mot de passe invalide';
        alert(ireponse);
      }
 
      function signon() {
        alert(ireponse.value);
      }
    </script>
  </head>
 
  <body onload='getId();'>
    <form action="">
      Utilisateur  :&nbsp;<input type='text' id='nom' size='10' maxlength='10'><br>
      Mot de passe  :&nbsp;<input type='text' id='passe' size='10' maxlength='10'>
      <br><br><input type='button' onclick='signon();' value='se connecter'>
      <br><br><input type='text' readonly size='200' id='reponse'>
    </form
  </body>
</html>
Kiko93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 00h10   #2
Invité régulier
 
Inscription : février 2010
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 23
Points : 8
Points : 8
En regardant le code entre la balise [CODE] j'ai pu corrigé deux choses :
- la balise fermante de <form> n'avait pas de chevron à la fin.
- la fonction getId etait mal orthographié.

Maintenant je me retrouve avec getElementById(...) non défine
On verra demain maintenant,


Bonne nuit.
Kiko93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 00h39   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Je suis, comme toi, débutant, néanmoins, j'ai trouvé plusieurs problèmes :
- des fautes de frappe (fuction au lieu de function et une fermeture de balise oubliée (>)) ;
- il ne faut pas appeler getId sur onload car le formulaire n'est pas encore créé, donc impossible de modifier le dom ;
- devant "getElementById", il faut rajouter "document" ;
- c'est pas alert(ireponse); mais alert(ireponse.value); qu'il faut faire. Mais comme tu le fais dans signon, je l'ai viré.

Pour vérifier que j'avais compris, j'ai modifié la valeur du alert.

Voici une version qui marche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
  <head>
    <title>Identification</title>
 
    <script type='text/javascript'>
      function getId() {
        ireponse = document.getElementById('reponse');
        ireponse.value='Utilisateur et/ou mot de passe invalide';
        //alert(ireponse.value);
      }
 
      function signon() {
        ireponse.value=document.getElementById('passe').value;
        alert(ireponse.value);
      }
    </script>
  </head>
 
  <body>
    <form action="">
      Utilisateur  :&nbsp;<input type='text' id='nom' size='10' maxlength='10'><br>
      Mot de passe  :&nbsp;<input type='text' id='passe' size='10' maxlength='10'>
      <br><br><input type='button' onclick='signon();' value='se connecter'>
      <br><br><input type='text' readonly size='20' id='reponse' >
    </form>
    <script type='text/javascript'>getId();</script>
  </body>
</html>
J'ai crû comprendre que ce genre de titre est déconseillé.
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/12/2011, 11h11   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Heu si le onload sert justement a attendre que les objets soient instanciés !
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 14h22   #5
Invité régulier
 
Inscription : février 2010
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 23
Points : 8
Points : 8
Merci Laurent pour ton aide et désolé pour le titre.
Kiko
Kiko93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 17h33   #6
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
Heu si le onload sert justement a attendre que les objets soient instanciés !
Exact ; d'ailleurs, ça marche très bien comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
  <head>
    <title>Identification</title>
 
    <script type='text/javascript'>
      function getId() {
        ireponse = document.getElementById('reponse');
        ireponse.value='Utilisateur et/ou mot de passe invalide';
        //alert(ireponse.value);
      }
 
      function signon() {
        ireponse.value=document.getElementById('passe').value;
        alert(ireponse.value);
      }
    </script>
  </head>
 
  <body onload='getId();'>
    <form action="">
      Utilisateur  :&nbsp;<input type='text' id='nom' size='10' maxlength='10'><br>
      Mot de passe  :&nbsp;<input type='text' id='passe' size='10' maxlength='10'>
      <br><br><input type='button' onclick='signon();' value='se connecter'>
      <br><br><input type='hidden' size='20' id='reponse' >
    </form>
    <!--<script type='text/javascript'>getId();</script>-->
  </body>
</html>
(au passage, j'ai remplacé le "readonly" (que je ne connaissais pas) par un champ "hidden" : ça revient au même)

Citation:
désolé pour le titre
Mon statut peu flatteur et mes nombreuses infractions expliquent ma vigilance, même si ça n'a rien à voir avec les titres !
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h17.


 
 
 
 
Partenaires

Hébergement Web