Vérification de formulaire [Résolu]

Signaler
Messages postés
82
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
12 février 2012
-
Messages postés
82
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
12 février 2012
-
Bonjour à tous,

je débute en JS, j'ai récupérer par ci et par la des vérifications de formulaire pour me donner une idée puis j'en ai fait un a ma sauce.

J'ai un problème, le JS vérifie tous les champs, mais quand tous les champs sont correct, il n'envoie pas le formulaire...

Je vous colle le code source, si vous pouvez me trouver une solution ça serais vraiment gentil car je ne comprend vraiment pas ....






JavaScript:




function FormVerifeIC(index_connection) {
    if (!FormAllVerifeIC(index_connection.TB_index_pseudo) || FormAllVerifeIC(index_connection.TB_index_mdp)) {
        return false;
    }
    else {
        index_connection.submit();
        return true;
    }
}
function FormAllVerifeIC(input) {    if (input.value null || input.value.length 0) {
        input.style.backgroundColor = "#ff7373"; 
    }
    var str = input.value;
    for (var i = 0; i < str.length;i++){
        var ch = str.substring(i,i+1);
        if ( ch == " ") {
            input.style.backgroundColor = "#ff7373"; 
        }
        else {
            input.style.backgroundColor = "#9fd69c";       
            return true;
        }
    }
    return true;
}







HTML :





        <form name="index_connection" action="index.php5?p=11" method="post">
       
        <label for="pseudo">Pseudo</label>

        <label for="mdp">Mot de passe</label>

       
        [index.php5?p=10 Inscription]
       

        [index.php5?p=11&MdpP=1 Mot de passe perdu]
       

        </form>


J'ai mit aussi une vérification de la touche entrer dans les input qui fonctionne correctement, donc je ne l'ai pas coller.

Merci par avance de votre aide, à bientôt.








G.Allan

13 réponses

Messages postés
82
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
12 février 2012

Super merci a vous bultez & PetoleTeam !

Je vous colle le code source fonctionnel pour ceux qui veulent faire une vérification des champs avec changement de background.
Vous pouvez ajouter autant de champs que vous voulez il suffit juste de dupliquer les champs a vérifier dans FormVerifeIC (en les renommant par vos champs bien sur !)




HTML





<form name= "index_connection" onsubmit="return FormVerifeIC();" action="index.php5?p=11" method="post">

<label for="pseudo">Pseudo</label>

<label for="mdp">Mot de passe</label>

[index.php5?p=10 Inscription]

[index.php5?p=11&MdpP=1 Mot de passe perdu]

</form>





JavaScript





function FormVerifeIC() {
    var erreur = 0;
    erreur += FormAllVerifeIC(document.index_connection.TB_index_pseudo);
    erreur += FormAllVerifeIC(document.index_connection.TB_index_mdp);
    return(erreur == 0);
}

function FormAllVerifeIC(input) {    if (input.value null || input.value.length 0) {
        input.style.backgroundColor = "#ff7373"; 
        return (1);
    }
    var str = input.value;
    for (var i = 0; i < str.length;i++){
        var ch = str.substring(i,i+1);
        if (ch == " ") {
            input.style.backgroundColor = "#ff7373"; 
            return (1);
        }
        else {
            input.style.backgroundColor = "#9fd69c";       
            return (0);
        }
    }
    return (0);
}





Merci encore a vous !!




G.Allan
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

    if ( !FormAllVerifeIC(index_connection.TB_index_pseudo) ||
         !FormAllVerifeIC(index_connection.TB_index_mdp))

    tu compliques un peu, me semble-t-il... mais bon...
    normalement, c'est dans le onsubmit du formulaire
       qu'on fait les contrôles, submit() du formulaire en javascript
       est à éviter ( si javascript désactivé... par exemple ? )

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
82
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
12 février 2012

Merci pour ta réponse bultez,

J'ai essayer avec le onsubmit dans la balise form mais ça ne marche pas (le JS ne s'exécute pas...)

Je rajouterais une fonction si le JS est désactiver (ça existe il me semble) que sa passe par la vérif du php.

Peux tu me coller le code fonctionnel ? car je suis au bout du roulot, j'ai essayer plein de choses, sans aucun résultat....

Merci par avance.


G.Allan
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>J'ai essayer avec le onsubmit dans la balise form mais ça ne marche pas (le JS ne s'exécute pas...)

<form... onsubmit="return(fonction_ctr());"...>
fonction_ctr()
{   si erreur : return false;
     sinon, return true;   }

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
82
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
12 février 2012

Le JS s'exécute mais n'envois toujours pas les informations à la page php si tout est bon ...




G.Allan
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>Le JS s'exécute mais n'envois toujours pas les informations à la page php s
    ça devrait....
    erreur coté php ?

    essaye <form... action="javascript:alert('envoi ok');"...>
       si ça affiche "envoi ok", c'est transmis,
       sinon... on peut voir, avec les modifs ?

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
82
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
12 février 2012

Le php ne cause aucune erreur, je le développe depuis pas mal d'année...
avec ton action dans le form le message s'affiche SI le bouton du formulaire est de type="submit" mais s'il est en type="button" ça ne marche pas.

Je l'ai mit en type="button" car en type="submit" les informations sont transmise a ma page php sans aucune vérification des champs...

Je vous colle le html et js



        <form name="index_connection" onsubmit="return(FormVerifeIC());" action="index.php5?p=11" method="post">
       
        <label for="pseudo">Pseudo</label>

        <label for="mdp">Mot de passe</label>

       
        [index.php5?p=10 Inscription]
       

        [index.php5?p=11&MdpP=1 Mot de passe perdu]
       

        </form>

function FormVerifeIC() {
    if (!FormAllVerifeIC(index_connection.TB_index_pseudo) || FormAllVerifeIC(index_connection.TB_index_mdp)) {
        return false;
    }
    else {
        index_connection.submit();
        return true;
    }
}
function FormAllVerifeIC(input) {    if (input.value null || input.value.length 0) {
        input.style.backgroundColor = "#ff7373"; 
    }
    var str = input.value;
    for (var i = 0; i < str.length;i++){
        var ch = str.substring(i,i+1);
        if ( ch == " ") {
            input.style.backgroundColor = "#ff7373"; 
        }
        else {
            input.style.backgroundColor = "#9fd69c";       
            return true;
        }
    }
    return true;
}

C'est bizzard car le bouton est de type submit mais ne transmet pas les informations a la page PHP.
Le JS fonctionne mais le transmet les informations ...

Le JS ma trop dégouté

G.Allan
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
petites imprécisions....

        <form     name= "index_connection" onsubmit="return(FormVerifeIC());"
                    action=" javascript:alert('ok'); " method ="post">
action= message javascript donc pour le test !
function FormVerifeIC() {
    if ( !FormAllVerifeIC( document .index_connection.TB_index_pseudo) ||
         !FormAllVerifeIC( document.index_connection.TB_index_mdp)) {
        return false;
    }
    else {
        return true;   // et pas de SUBMIT du formulaire ! ça le fait tout seul...
    }
...
function FormAllVerifeIC(input) {    if (input.value null || input.value.length 0) {
        input.style.backgroundColor = "#ff7373";
          return false;
    }

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
82
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
12 février 2012

Super !!! merci à toi je viens d'y arriver ça fonctionne !!

Il y a juste un petit problème,
si je met le return false; dans l'IF de la fonction FormAllVerifeIC il ne change qu'une seule couleur d'arriere plant sans envoyer le formulaire.
Si je ne l'y met pas, il envoi le formulaire...

Comment faire pour que la couleur d'arrière plant s'applique a tous les champs où se trouve l'erreur ?

Merci beaucoup pour ton aide.

Voici le code source actuelle:






HTML :




        <form name="index_connection" onsubmit="return FormVerifeIC();" action="index.php5?p=11" method="post">
       
        <label for="pseudo">Pseudo</label>

        <label for="mdp">Mot de passe</label>

       
        [index.php5?p=10 Inscription]
       

        [index.php5?p=11&MdpP=1 Mot de passe perdu]
       

        </form>

JavaScript :

function FormVerifeIC() {
    if (!FormAllVerifeIC(document.index_connection.TB_index_pseudo) || !FormAllVerifeIC(document.index_connection.TB_index_mdp)) {
        return false;
    }
    else {
        return true;
    }
}
function FormAllVerifeIC(input) {    if (input.value null || input.value.length 0) {
        input.style.backgroundColor = "#ff7373"; 
        return false;
    }
    var str = input.value;
    for (var i = 0; i < str.length;i++){
        var ch = str.substring(i,i+1);
        if ( ch == " ") {
            input.style.backgroundColor = "#ff7373"; 
            return false;
        }
        else {
            input.style.backgroundColor = "#9fd69c";       
            return true;
        }
    }
    return true;
}

G.Allan
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour à tous,
fais une gestion par comptage du
nombre d'erreurs, par exemple
//---------------------
function
FormVerifeIC(){
  var Erreur = 0; // Init Erreur a
zero
  Erreur +=
FormAllVerifeIC(document.index_connection.TB_index_pseudo);
  Erreur +=
FormAllVerifeIC(document.index_connection.TB_index_mdp);
  return( Erreur ==
0);



// retourne true si pas d'erreur






}

et ta fonction FormAllVerifeIC devient
//-----------------------------
function
FormAllVerifeIC(input){   if (input.value null || input.value.length
0) {
    input.style.backgroundColor = "#ff7373";
    return (1);

  }
  var str = input.value;
  for (var i = 0; i <
str.length;i++){
    var ch = str.substring(i,i+1);
    if ( ch == " ")
{
      input.style.backgroundColor = "#ff7373";
      return (1);

    }
    else {
      input.style.backgroundColor = "#9fd69c";

      return (0);
    }
  }
  return (0);
}
PS
: je n'ai pas trop saisi ta deuxième fonction, il me semble que si le premier caractère n'est pas un espace cela retourne pas d'erreur, mais si c'est le deuxième ???
...mais bon...
;O)
Messages postés
82
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
12 février 2012

Merci pour ta réponse Petole Team,

je viens d'essayer ton code source et ça ne fait aucune vérification, ça transmet directement les informations...
J'ai mit un if (erreur == 0) { alert("OK"); } et ça n'affiche rien ....

la 2 ème fonction je l'ai chopper sur le net, elle sert à vérifier s'il y a un ou plusieurs espace avant le texte.




G.Allan
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
SORRY je n'ai pas tester ton code...
<table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, la 2 ème fonction je l'ai chopper sur le net,
elle sert à vérifier s'il y a un ou plusieurs espace avant le
texte</td>
</td></tr></tbody></table>
dans
l'absolu elle vérifie si le 1st caractère est un espace et ce à cause du else
qui return( true)
for (var i =
0; i < str.length;i++){
  var ch = str.substring( i, i+1);
  if ( ch == "
") {
    input.style.backgroundColor = "#ff7373";
    return false;
  }

  else {
    input.style.backgroundColor = "#9fd69c";
    return true;
  }

}
;O)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Je viens de tester le code c'est OK !
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, J'ai mit un if (erreur ==
0)</td>
</td></tr></tbody></table> Attention
Erreur == 0
;O)