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 :

fonction javascript qui return toujours true


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Par défaut fonction javascript qui return toujours true
    Bonjour,
    j'ai un formulaire html, et un fonction javascript pour vérifier le contenu.
    Le probleme c'est que ma fonction javascript renvoi tjrs "true" alors que je met return false.
    Mon form ressemble à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <FORM name="formulaire" ACTION="index.php?p=valid_inscription" METHOD="POST" onsubmit="return validInscription();">
    ..
    ..
    <input style="border:1px solid #ff00c6; background-color:#8a0068; color:#fcf;" type="submit" name="valider" value="Valider votre inscription"  >
    </form>
    Et voici ma fonction js:
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    function validInscription()
    {
     
    	alert("false");
     
     
    	if($F('pseudo').length < 2)
    	{
    		$("result_name").innerHTML="<span class='red'>Le pseudo est invalide car trop court</span>";
    		$("pseudo").focus;
    		return false;
    	}
     
    	if($F('pass1').length == 0 || $F('pass2').length == 0)
    	{
     
    		$("result_pass").innerHTML="<span class='red'>Vous devez saisir 2 fois le meme mot de passe</span>";
    		$("pass1").focus;
    		$("pass1").innerHTML='';
    		$("pass2").innerHTML='';
    		return false;
    	}
    			return false;
    	if($F('pass1') != $F('pass2'))
    	{
    		$("result_pass").innerHTML="<span class='red'>Vous avez saisi 2 pass diff&eacute;rents</span>";
    		$("pass1").focus;
    		$("pass1").innerHTML='';
    		$("pass2").innerHTML='';
    		return false;
    	}
    	if($F('age')<18)	
    	{
     
    		$("result_age").innerHTML="<span class='red'>Vous devez etre majeur pour vous inscrire sur ce site</span>";
    		$("age").focus;
    		return false;
    	}
    	if($('sexe_m').checked==false && $('sexe_f').checked==false)
    	{
     
    		$("result_sex").innerHTML="<span class='red'>Choisissez votre sex</span>";
    		//$("nickname").focus;
    		return false;
    	}
    	if(!document.getElementById('id_47').checked)
    	{
     
    		$("result_charte").innerHTML="<span class='red'>Vous devez accepter la charte</span>";
    		document.formulaire.id_47.focus();
    		return false;
    	}
    return false;
     
     
    }
    Si je saisi un champ valide dans pseudo donc >2 caract, le formulaire est submité...
    pourtant j'ai des return false de partout..
    une idée?
    merci d'avance

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Bonsoir,

    C'est quand tu saisis une valeur de longueur < 2 dans pseudo que tu as le problème ?

    tu as importé la librairie prototype.js ?

    tu as bien un et un seul champ d'id pseudo, une et une seule div d'id result_name

    remarque il faut les parenthèses à focus (mais ce n'est pas le probleme je pense)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Par défaut
    Bonsoir,

    C'est quand tu saisis une valeur de longueur < 2 dans pseudo que tu as le problème ?
    Si c'est inférieur à 2 le texte en rouge s'écrit bien, mais le form est quand même envoyé.
    tu as importé la librairie prototype.js ?
    Oui
    <script type="text/javascript" src="./js/prototype-1.6.0.2.js"></script>

    tu as bien un et un seul champ d'id pseudo, une et une seule div d'id result_name
    oui.

    J'ai modifié ma fonction avec des alerts pour avoir un retour
    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
    function validInscription()
    {
    	var send=false;
    
    
    	
    	if($F('pseudo').length < 2)
    	{
    		$("result_name").innerHTML="<span class='red'>Le pseudo est invalide car trop court</span>";
    		$("pseudo").focus;
    		alert("ici1");
    	}
    	else
    	{
    		alert("ici2");
    		return false;
    	}
    alert("ici_bis = "+send);
    	if($F('pass1').length == 0 || $F('pass2').length == 0)
    	{
    
    		$("result_pass").innerHTML="<span class='red'>Vous devez saisir 2 fois le meme mot de passe</span>";
    		$("pass1").focus;
    		$("pass1").innerHTML='';
    		$("pass2").innerHTML='';
    		alert("ici3");
    	}
    alert("ici4");
    .....
    }
    Et j'ai ceci: lorsque je valide le formulaire entièrement vide:
    alert: ici1
    alert: ici_bis = false
    <== et la plus rien et le formulaire est envoyé...

  4. #4
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Alors comme tu as mis d'autres alertes et que tu ne les a pas, on sait qu'il y a une erreur là dedans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    alert("ici_bis = "+send);
    	if($F('pass1').length == 0 || $F('pass2').length == 0)
    	{
     
    		$("result_pass").innerHTML="<span class='red'>Vous devez saisir 2 fois le meme mot de passe</span>";
    		$("pass1").focus;
    		$("pass1").innerHTML='';
    		$("pass2").innerHTML='';
    		alert("ici3");
    	}
    alert("ici4");
    et l'erreur c'est que les input password n'ont pas de propriété innerHTML mais value !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Par défaut
    J'ai modifié les innerHtml en value pour les password.
    et les focus en focus()
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    function validInscription()
    {
    	var send=false;
     
    	if($F('pseudo').length < 2)
    	{
    		$("result_name").innerHTML="<span class='red'>Le pseudo est invalide car trop court</span>";
    		$("pseudo").focus();
    		alert("ici1");
    	}
    	else
    	{
    		alert("ici2");
    		//return false;
    	}
    alert("ici_bis = "+send);
    	if($F('pass1').length == 0 || $F('pass2').length == 0)
    	{
     
    		$("result_pass").innerHTML="<span class='red'>Vous devez saisir 2 fois le meme mot de passe</span>";
    		$("pass1").focus();
    		$("pass1").value='';
    		$("pass2").value='';
    		alert("ici3");
    	}
    alert("ici4");
    	if($F('pass1') != $F('pass2'))
    	{
    		$("result_pass").innerHTML="<span class='red'>Vous avez saisi 2 pass diff&eacute;rents</span>";
    		$("pass1").focus();
    		$("pass1").value='';
    		$("pass2").value='';
    alert("ici5");
    	}
    	if($F('age')<18)	
    	{
     
    		$("result_age").innerHTML="<span class='red'>Vous devez etre majeur pour vous inscrire sur ce site</span>";
    		$("age").focus();
     
    	}
    	if($('sexe_m').checked==false && $('sexe_f').checked==false)
    	{
     
    		$("result_sex").innerHTML="<span class='red'>Choisissez votre sex</span>";
    		//$("nickname").focus;
     
    	}
    	if(!document.getElementById('id_47').checked)
    	{
     
    		$("result_charte").innerHTML="<span class='red'>Vous devez accepter la charte</span>";
    		document.formulaire.id_47.focus();
     
    	}
    	alert("return send= "+send);
    return send;
     
     
    }
    Mais la fonction sumbit le form entièrement vide toujours après ici_bis
    Que je mette ou pas un pseudo d'ailleur il l'envoi dans tous les cas.

  6. #6
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    pass1 et pass2 sont bien des ids de champs (pas les noms) ?
    Tu peux poster ton formulaire complet ?

Discussions similaires

  1. Fonction Javascript qui ne s'exécute pas
    Par bubuche007 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 25/01/2007, 11h17
  2. Fonction javascript qui marche qu'une fois sous Firefox
    Par ns_deux dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2006, 10h38
  3. Réponses: 4
    Dernier message: 09/08/2006, 10h41
  4. fonction javascript qui convertit 1 page web(html) en pdf!!
    Par allaoua dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/02/2006, 23h59
  5. fonction javascript qui rassemble une date
    Par Dizystorm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/12/2004, 10h03

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