IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Too much recursion après un alert


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Too much recursion après un alert
    Salut tout le monde,

    J'ai un gros soucis, je rencontre cela pour la première fois.

    J'ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function verif(chaine,id_objet)
    {
    //	alert(id_objet);
    	var reg = new RegExp("^(ABS|R|J|D|[0-9])$","");
    	if(!reg.test(chaine))
    	{ 
    		document.getElementById(id_objet).focus();
     
    		alert('Attention : seuls les caractères ABS | R | J | D et les chiffres de 0 à 9 sont acceptés');
    		return;
     
     
    	}
     
    }
    Quand je mets un caractères interdit, il me donne bien l'alerte mais impossible de sortir du site.

    J'ai ce message d'erreur :

    Too much recursion
    Genre boucle infinie ?

    J'ai essayé de mettre un return mais ça ne change rien.

    Le but était juste de revenir sur la zone de texte qui posait problème (focus).

    Merci d'avance pour votre aide.

    beegees

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function verif(chaine,id_objet)
    {
    //	alert(id_objet);
    	var reg = new RegExp("^(ABS|R|J|D|[0-9])$","");
    	if(!reg.test(chaine))
    	{ 
    		alert('Attention : seuls les caractères ABS | R | J | D et les chiffres de 0 à 9 sont acceptés');
    		document.getElementById(id_objet).focus();
     
     
    	}
     
    }

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    le problème doit être au niveau de l'appel de la fonction ... que tu ne nous a pas donné

    A+

  4. #4
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function verif(chaine,id_objet)
    {
    //	alert(id_objet);
    	var reg = new RegExp("^(ABS|R|J|D|[0-9])$","");
    	if(!reg.test(chaine))
    	{ 
    		alert('Attention : seuls les caractères ABS | R | J | D et les chiffres de 0 à 9 sont acceptés');
    		document.getElementById(id_objet).focus();
     
     
    	}
     
    }
    Salut Spacey,

    Si je fait ce que tu me dis, pas de too much recursion, l'alerte s'enclenche, mais le focus ne se remet pas sur la zone de texte qui pose problème.

    Merci
    beegees

    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    le problème doit être au niveau de l'appel de la fonction ... que tu ne nous a pas donné

    A+
    Bonjour E.Bzz

    Merci pour ta réponse et désolé pour l'oubli.

    Voici le code d'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	echo' <td><input name="textarea" type="text" id="note_zone_de_texte'.$tab['ID'].'" onblur="verif(this.value,id)"  size="4" style="text-align:center" width="5%" value="' . $tab['NOTE'] . '"   /> </td>';
    C'est donc cette partie qui nous intéresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onblur="verif(this.value,id)"
    Merci encore.

    beegees

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par beegees Voir le message
    [/code]C'est donc cette partie qui nous intéresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onblur="verif(this.value,id)"
    ... et sûrement qui pose problème

    Utilise onchange plutôt que onblur.

    A+

  6. #6
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    ... et sûrement qui pose problème

    Utilise onchange plutôt que onblur.

    A+
    Re,

    Merci pour ta réponse.

    Je n'obtiens plus en effet ce message d'erreur.

    Mais, le curseur ne reste pas sur la zone de texte

    C'est primordial que ce cursus reste dans la zone de texte.

    Est-ce possible ? j'ai repris cet exemple dans la faq du forum.

    Voici mon code à nouveau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    function verif(chaine,id_objet)
    {
    //	alert(id_objet);
    	var reg = new RegExp("^(ABS|R|J|D|[0-9])$","");
    	if(!reg.test(chaine))
    	{ 
    		document.getElementById(id_objet).focus();
     
    		alert('Attention : seuls les caractères ABS | R | J | D et les chiffres de 0 à 9 sont acceptés');
     
     
     
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="verif(this.value,id)"
    Merci pour tout.

    beegees

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    je dirais que le focus se mets bien sur l'objet mais que le fait de cliquer sur l'alert lui fait un onblur
    essaye confirm au lieu de alert ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Points : 284
    Points
    284
    Par défaut
    salut,

    deja eu ce probleme
    il faut que tu intervertisse ton focus et ton alert et jouer avec un settimeout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    alert('Attention : seuls les caractères ABS | R | J | D et les chiffres de 0 à 9 sont acceptés');
    setTimeout(function() { document.getElementById(id_objet).focus(); }, 100)

  9. #9
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    je dirais que le focus se mets bien sur l'objet mais que le fait de cliquer sur l'alert lui fait un onblur
    essaye confirm au lieu de alert ?
    Re,

    Merci pour ta réponse.

    Le confirm ne change rien.

    Merci quand même pour ton dévouement en or sur ce forum.

    beegees

    Citation Envoyé par jln13 Voir le message
    salut,

    deja eu ce probleme
    il faut que tu intervertisse ton focus et ton alert et jouer avec un settimeout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    alert('Attention : seuls les caractères ABS | R | J | D et les chiffres de 0 à 9 sont acceptés');
    setTimeout(function() { document.getElementById(id_objet).focus(); }, 100)
    Salut,

    Merci pour ta réponse.

    Super efficace, merci, ça fonctionne.

    Bon, il y a quand même une petite faille :

    On tape un w, on fait une tabulation, le message appraît, il revient sur la zone de texte qui contient la valeur erronée, si je retape sur tab, le w passe sans problème.

    C'est un bon début.

    Merci encore.

    beegees

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par beegees Voir le message
    On tape un w, on fait une tabulation, le message appraît, il revient sur la zone de texte qui contient la valeur erronée, si je retape sur tab, le w passe sans problème.
    Réinitialise le champ en cas d'erreur ...

    A+

  11. #11
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Réinitialise le champ en cas d'erreur ...

    A+
    Re,

    Comment on fait cela ?

    Merci encore pour ton aide.

    beegees

  12. #12
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.value = defaultValue;
    this.value = '';
    par exemple...

  13. #13
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.value = defaultValue;
    this.value = '';
    par exemple...
    Merci pour ta réponse Bovino.

    ça marche pas :

    defaultValue is not defined
    http://localhost/REGEX/regex.js
    Line 9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function verif(chaine,id_objet)
    {
    //	alert(id_objet);
    	var reg = new RegExp("^(ABS|R|J|D|[0-9])$","");
    	if(!reg.test(chaine))
    	{ 
    		alert('Attention : seuls les caractères ABS | R | J | D et les chiffres de 0 à 9 sont acceptés');
    		setTimeout(function() { document.getElementById(id_objet).focus(); }, 100)
    		this.value = defaultValue;
    		this.value = '';
     
     
     
    	}
     
    }
    J'ai encore fait une erreur ?

    Merci
    beegees

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.value = defaultValue;
    this.value = '';
    par exemple...
    C'était l'un OU l'autre

    Garde le 2°

    A+

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Tu cherches les ennuis en donnant un name="textarea" à ton input type="text"

    A+

  16. #16
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    C'était l'un OU l'autre

    Garde le 2°

    A+
    J'avais pas compris

    Mais ça ne fonctionne toujours pas, la valeur ne change pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function verif(chaine,id_objet)
    {
    //	alert(id_objet);
    	var reg = new RegExp("^(ABS|R|J|D|[0-9])$","");
    	if(!reg.test(chaine))
    	{ 
    		alert('Attention : seuls les caractères ABS | R | J | D et les chiffres de 0 à 9 sont acceptés');
    		setTimeout(function() { document.getElementById(id_objet).focus(); }, 100)
    		this.value = '';
     
    	}
     
    }


    Citation Envoyé par E.Bzz Voir le message
    Tu cherches les ennuis en donnant un name="textarea" à ton input type="text"

    A+
    J'ai changé.

    Merci pour ton dévouement.

    beegees

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Points : 284
    Points
    284
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(id_objet).value = '';
    a place de

  18. #18
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par jln13 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(id_objet).value = '';
    a place de
    Merci beaucoup, c'est vraiment très sympa.

    Je vous remrecie tous (Spacey, EBzzz, Bovino, Jumano,...) pour votre dévouement sans limite, votre efficacité...)

    Beegees

  19. #19
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    c'est ça l'équipe javascript ^^

  20. #20
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par beegees Voir le message
    Merci beaucoup, c'est vraiment très sympa.

    Je vous remrecie tous (Spacey, EBzzz, Bovino, Jumano,...) pour votre dévouement sans limite, votre efficacité...)
    Ce n'est pas parce qu'il n'est pas modo qu'il faut oublier jln13

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Google Maps] Too much recursion
    Par xdeslandes dans le forum APIs Google
    Réponses: 2
    Dernier message: 20/04/2015, 11h09
  2. [Dojo] "Too much recursion" sous FF uniquement
    Par anaon dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 30/06/2014, 10h29
  3. Extjs 4 avec Ext.direct erreur "too much recursion"
    Par kenny.kev dans le forum Ext JS / Sencha
    Réponses: 4
    Dernier message: 10/05/2011, 15h52
  4. Too Much Recursion
    Par cookiewarrior dans le forum jQuery
    Réponses: 1
    Dernier message: 01/10/2010, 12h32
  5. [script.aculo.us] DragDrop too much recursion
    Par bruman dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 11/05/2009, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo