Probléme en javascript

Résolu
Bonjour,
le problème est le suivant:
j'ai une page qui contient une formulaire (pour l'inscription) et j'ai fait un fichier javascript pour faire des tests sur cette formulaire, mais le problème c'est que lorsque je clique sur "envoyer" l'alerte s'affiche et quand je clique sur " ok " il passe à la page suivantes malgré que les condition ne sont pas encore vérifier. comment je peut l'empêcher de passer tant que les condition ne sont pas vérifier .
merci
Configuration: Windows XP
Safari 532.0

5 réponses

  1. Essaie avec ça :

    HTML :
    <form name="ins" action="liste.php" method="post" onsubmit="return test();">
    <table>
    <th>
    <td align="center"><b><i>S'INSCRIR</b></i></td></th>
    <tr>
    <td>Nom:</td>
    <td><input type="text" name="nom" size="10"></td>
    <td>Prénom:</td>
    <td><input type="text" name="pnom" size="10"></td>
    </tr>
    <tr>
    <td>E-mail:</td>
    <td><input type="text" name="mail"></td>
    </tr>
    <tr>
    <td>Mot de passe:</td>
    <td><input type="password" name="mp"></td>
    </tr>
    <tr>
    <td>répeter Mot de passe:</td>
    <td><input type="password" name="rmp"></td>
    </tr>
    <tr">
    <td align="right"><input type="reset" value="Annuler"></td>
    <td> <input type="submit" value="Envoyer"></td>
    </tr>
    
    
    </table>
    </form>


    et celui ci de javascript:

    function test()
    {
    msg="";
    /*teste sur nom et prenom*/
    if (document.ins.nom.value == "")
    msg=msg+ "vous n'avez pas saisie votre nom\n";
    
    
    if (document.ins.pnom.value =="")
    msg=msg+ "vous n'avez pas saisie votre prenom\n";
    
    /*testes sur l'email*/
    if (document.ins.mail.value =="") {
    msg=msg+ "vous n'avez pas saisir votre mail\n";
    }
    else
    {
    ch= document.ins.mail.value;
    long= ch.length;
    pos= ch.lastIndexOf('.');
    
    if (pos==-1)
    msg=msg+"il faut avoir au moin un point dans l'adresse email ;)\n";
    else if (long-pos>4)
    msg=msg+"email incorrect\n";
    
    if ( ch.indexOf("@")==-1)
    msg=msg+"email incorrect , pas de @\n";
    }
    
    /*teste sur mot de passe et sa confirmation*/
    
    if (document.ins.mp.value =="") {
    msg=msg+ "vous n'avez pas saisir votre mot de passe\n" ;
    } else if (document.ins.mp.value != document.ins.rmp.value) {
    msg=msg+"vous n'avez pas confirmez correctement votre mot de passe\n";
    }
    
    if (msg.length >0)
    alert(msg);
    return false;
    } else {
    return true;
    }
    
    1. ok, voila le code de page html:

      <form name="ins" action="liste.php" method="post">
      <table>
      <th>
      <td align="center"><b><i>S'INSCRIR</b></i></td></th>
      <tr>
      <td>Nom:</td>
      <td><input type="text" name="nom" size="10"></td>
      <td>Prénom:</td>
      <td><input type="text" name="pnom" size="10"></td>
      </tr>
      <tr>
      <td>E-mail:</td>
      <td><input type="text" name="mail"></td>
      </tr>
      <tr>
      <td>Mot de passe:</td>
      <td><input type="password" name="mp"></td>
      </tr>
      <tr>
      <td>répeter Mot de passe:</td>
      <td><input type="password" name="rmp"></td>
      </tr>
      <tr">
      <td align="right"><input type="reset" value="Annuler"></td>
      <td> <input type="submit" value="Envoyer" OnClick="test()"></td>
      </tr>

      </table>
      </form>
      et celui ci de javascript:
      function test()
      {
      msg="";
      /*teste sur nom et prenom*/
      if (document.ins.nom.value == "")
      msg=msg+ "vous n'avez pas saisie votre nom\n";

      if (document.ins.pnom.value =="")
      msg=msg+ "vous n'avez pas saisie votre prenom\n";
      /*testes sur l'email*/
      if (document.ins.mail.value =="")
      msg=msg+ "vous n'avez pas saisir votre mail\n";

      else
      {
      ch= document.ins.mail.value;
      long= ch.length;
      pos= ch.lastIndexOf('.');

      if (pos==-1)
      msg=msg+"il faut avoir au moin un point dans l'adresse email ;)\n";
      else if (long-pos>4)
      msg=msg+"email incorrect\n";

      if ( ch.indexOf("@")==-1)
      msg=msg+"email incorrect , pas de @\n";
      }

      /*teste sur mot de passe et sa confirmation*/

      if (document.ins.mp.value =="")
      msg=msg+ "vous n'avez pas saisir votre mot de passe\n" ;

      else if (document.ins.mp.value != document.ins.rmp.value)
      msg=msg+"vous n'avez pas confirmez correctement votre mot de passe\n";

      if (msg.length >0)
      alert(msg);
      }