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 :

Interdire l'ex�cution d'une fonction B si la fonction A ne retourne pas VRAI


Sujet :

JavaScript

  1. #1
    Membre exp�riment�
    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 : 50
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut Interdire l'ex�cution d'une fonction B si la fonction A ne retourne pas VRAI
    Bonjour tout le monde,

    J'ai une question importante car mon site plante :

    J'ai ce code g�n�r� :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <td><input name="textarea" id="note_zone_de_texte2" size="4" style="text-align: center;" value="0" onkeypress="chiffres(event);" onblur="comparer(document.getElementById('note_originale2').value, document.getElementById('note_zone_de_texte2').value);" type="text" width="5%"> </td> <td width="25%" align="center"></td> </tr>
    Ce que j'aimerais faire, c'est INTERDIRE l'ex�cution de la fonction comparer SI chiffres ne retourne pas VRAI par exemple ou ok.

    Chiffres permet de checker si l'utilisateur n'a pas encod� un caract�re interdit, en voici le 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
    16
    17
    18
    19
    20
    function chiffres(ev) 
     
    { 
    // cette alerte permet de connaître l'évènement lorsque l'on clic sur le clavier exemple une tabulation donnera deux alertes (9 et 0)
    //alert(ev.keyCode); alert(ev.which); 
     
    	// IE 
    if((ev.which < 48 || ev.which > 57) && (ev.which < 8 || ev.which > 8) && (ev.which < 9 || ev.which > 9) && (ev.which < 65 || ev.which > 66) && (ev.which < 68 || ev.which > 68) && (ev.which < 74 || ev.which > 74) && (ev.which < 82 || ev.which > 83)){ 
    		ev.returnValue = false; 
    		ev.cancelBubble = true; 
    		//alert("les seules caractères autorisés sont : les chiffres de 0 à 20, ABS, R (report), J (Justifié), D (Dispensé)");
    	} 
    	// DOM 
    	if((ev.which < 0 || ev.which > 0)&&(ev.which < 48 || ev.which > 57) && (ev.which < 8 || ev.which > 8) && (ev.which < 9 || ev.which > 9) && (ev.which < 65 || ev.which > 66) && (ev.which < 97 || ev.which > 98) && (ev.which < 68 || ev.which > 68) && (ev.which < 115 || ev.which > 115) && (ev.which < 74 || ev.which > 74) && (ev.which < 82 || ev.which > 83)){ 
    		ev.preventDefault();
    		ev.stopPropagation(); 
    		alert("les seules caractères autorisés sont : les chiffres de 0 à 9, ABS, R (report), J (Justifié), D (Dispensé)");
    	} 
     
    }
    J'aimerais donc que si le visiteur entre "q" par exemple (caract�re interdi) que la fonction comparer ne s'ex�cute pas.

    Est-ce possible de faire cela ?

    Un super grand merci d'avance.

    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    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
    function a(){
    if(machin){ return true}
    else {return false}
    }
     
     
    function B(resultA){
    if (resultA){ traitement ...}
    else {return false}
    }
    s'utilise comme �a:
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre exp�riment�
    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 : 50
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Bonjour SpaceFrog,

    Merci pour ta r�ponse.

    J'ai suivi ton id�e.

    J'ai cr�� une variable globale (ok) dans ce script :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    var ok = false;
    function chiffres(ev) 
     
    { 
    // cette alerte permet de connaître l'évènement lorsque l'on clic sur le clavier exemple une tabulation donnera deux alertes (9 et 0)
    //alert(ev.keyCode); alert(ev.which); 
     
    	// IE 
    if
    (
       (ev.which < 48 || ev.which > 57) && (ev.which < 8 || ev.which > 8) && (ev.which < 9 || ev.which > 9) && (ev.which < 65 || ev.which > 66) && (ev.which < 68 || ev.which > 68	) && (ev.which < 74 || ev.which > 74) && (ev.which < 82 || ev.which > 83))
     
    { 
    		ev.returnValue = false; 
    		ev.cancelBubble = true; 
    		ok = false;
    		//alert("les seules caractères autorisés sont : les chiffres de 0 à 20, ABS, R (report), J (Justifié), D (Dispensé)");
    }
     
    else
    	{
    		ok = true;
    	}
    	// DOM 
    	if((ev.which < 0 || ev.which > 0)&&(ev.which < 48 || ev.which > 57) && (ev.which < 8 || ev.which > 8) && (ev.which < 9 || ev.which > 9) && (ev.which < 65 || ev.which > 66) && (ev.which < 97 || ev.which > 98) && (ev.which < 68 || ev.which > 68) && (ev.which < 115 || ev.which > 115) && (ev.which < 74 || ev.which > 74) && (ev.which < 82 || ev.which > 83)){ 
    		ev.preventDefault();
    		ev.stopPropagation(); 
    		alert("les seules caractères autorisés sont : les chiffres de 0 à 9, ABS, R (report), J (Justifié), D (Dispensé)");
    		ok = false;
    	} 
    	else
    	{
    		ok = true;
    	}
     
    }
    J'appelle la fonction que si ok est �gal � TRUE :


    pour faire un peu plus court :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(ok=TRUE) then onblur="comparer(document.getElementById(\'note_originale'.$tab['ID'].'\').value
    Voici le code g�n�r�, je pense que le probl�me vient de l� :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     if(ok="TRUE)" then="" {onblur="comparer(document.getElementById('note_originale2').value, document.getElementById('note_zone_de_texte2').value);" }=""
    �a ne fonctionne pas.

    Merci d'avance pour l'aide.

    beegees

  4. #4
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    tu parles de d'ev�nements ...

    la fonction de teste doit �tre DANS l'�v�nement ...

    essaye


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    onblur="if(ok){comparer(document.getElementById('note_originale2').value, document.getElementById('note_zone_de_texte2').value);"
    dans la balise ...
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de D�veloppez !

  5. #5
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    JavaScript �tant sensible � la casse,
    va effectivement poser un probl�me !!!
    voire
    EDIT :
    En plus, then n'existe pas en JavaScript.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  6. #6
    Membre exp�riment�
    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 : 50
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Bonjour et merci � vous deux pour vos r�ponse.

    Le probl�me se pose au niveau de firefox, sans doute sur cette ligne de code g�n�r�e :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    onkeypress="chiffres(event);" onblur="comparer(document.getElementById('note_originale25').value, document.getElementById('note_zone_de_texte25').value);" type="text" width="5%"> </td> <td width="25%" align="center"></td> </tr>
    J'ai test� avec Opera, �a fonctionne sans probl�me.

    Je vous invite � tester :

    Voici l'adresse : ici
    matricule : 07788
    login : ylooze
    mot de passe : test

    Sous firefox :

    Encoder une cote (num�rique)
    encoder une lettre comme q ou w (ABS, J, D, R accept�s)

    Attention plantage (alerte infinie) lors de l'encodage d'un caract�re interdit comme q

    Celui qui trouve la solution � ce probl�me, je lui tire mon chapeau.

    Merci pour tout.

    beegees

Discussions similaires

  1. Stopper l'ex�cution d'une fonction au bout d'un certain temp
    Par Eagle959 dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 13/03/2006, 18h16
  2. R�ponses: 3
    Dernier message: 11/03/2006, 15h35
  3. fonction qui s'ex�cute qu'une seule fois sous Firefox
    Par la.sophe dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 01/03/2006, 10h02
  4. Pause dans l'ex�cution d'une fonction
    Par FrankOVD dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 29/06/2005, 07h48
  5. Ex�cution d'une fonction...
    Par mickeliette dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 25/11/2004, 16h59

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