Javascript Control des champs

lala -  
 Utilisateur anonyme -
Bonjour,
aux spécialistes des formulaires et javascript,
J'ai fait un formulaire avec 2 champs obligatoires
mais vérification ne marche pas

<html>
<head>
<script language="javascript" type="text/javascript">

function verif()
{
var nom = document.formulaire.nom.value;
if (document.formulaire.nom.value == "")
{
alert ('Veuillez entrer votre nom');
document.formulaire.nom.focus();
return false;
}
if(document.formulaire.prenom.value == "")
{
alert ('Veuillez entrer votre prénom');
document.formulaire.prenom.focus();
return false;}
else {return true;}
}
//-->

</script></head>
<BODY>
<FORM METHOD="POST" ACTION="/cgibin/
questionnaire.cmd?xxx">
<h4><CENTER>Essai Formulaire
</CENTER></H4>
<pre><b>
<LI>nom: <input type="text"
name="nom" size=30>
<LI>prenom: <input type="text"
name="prenom" size=30>

</BODY>
<input type="submit"
value="Soumettre"> <input
type="reset" value="Effacer et
recommencer"><P>
</form><p>
</HTML>

3 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    Vous n'appellez jamais la fonction verif(), donc la vérification ne risque pas de se lancer.

    Voici un code corrigé:
    - donnez un name='formulaire' à votre formulaire
    - remplacer le bouton submit par un button simple
    - ajoutez un évènement onClick sur ce bouton qui appel verif()
    - si verif est à true, dans ce cas postez le formulaire document.formulaire.submit()

    <html>
    <head>
    <script language="javascript" type="text/javascript">
    
    function verif()
    {
    var nom = document.formulaire.nom.value;
    if (document.formulaire.nom.value == "")
    {
    alert ('Veuillez entrer votre nom');
    document.formulaire.nom.focus();
    return false;
    }
    if(document.formulaire.prenom.value == "")
    {
    alert ('Veuillez entrer votre prénom');
    document.formulaire.prenom.focus();
    return false;}
    return true;
    }
    //-->
    
    </script></head>
    <BODY>
    <FORM METHOD="POST" ACTION="/cgibin/
    questionnaire.cmd?xxx" name="formulaire">
    <h4><CENTER>Essai Formulaire
    </CENTER></H4>
    <pre><b>
    <LI>nom: <input type="text"
    name="nom" size=30>
    <LI>prenom: <input type="text"
    name="prenom" size=30>
    
    </BODY>
    <input type="button"
    value="Soumettre" onClick="if (verif()) {document.formulaire.submit()}"> <input
    type="reset" value="Effacer et
    recommencer"><P>
    </form><p>
    </HTML> 
    
    0
  2. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Dans ton javascript, tu appelles tes champs comme ceci :
    document.formulaire.nom

    Ce qui sous-entend que tu as appelé ton <form> « formulaire ».
    Or dans la définition de ton <form>, on ne le voit pas :
    <FORM METHOD="POST" ACTION="/cgibin/questionnaire.cmd?xxx">

    Il faut donc rajouter name="formulaire" (ou id="formulaire", je ne sais plus lequel des deux... je te laisse tester)

    Un autre problème : ta balise </body> est fermée avant tes </form> et <input type="submit">... Et tu as des <p>, des <li> et des <b> qui ne sont pas fermés !

    Xavier
    0
  3. Utilisateur anonyme
     
    Effectivement c'est plus propre ainsi :

    <html>
    <head>
    <script language="javascript" type="text/javascript">
    
    function verif()
    {
    var nom = document.formulaire.nom.value;
    if (document.formulaire.nom.value == "")
    {
    alert ('Veuillez entrer votre nom');
    document.formulaire.nom.focus();
    return false;
    }
    if(document.formulaire.prenom.value == "")
    {
    alert ('Veuillez entrer votre prénom');
    document.formulaire.prenom.focus();
    return false;}
    return true;
    }
    //-->
    
    </script></head>
    <BODY>
    <form METHOD="POST" ACTION="/cgibin/questionnaire.cmd?xxx" name="formulaire">
    <h4><CENTER>Essai Formulaire</CENTER></H4>
    <LI>nom: <input type="text" name="nom" size=30></LI>
    <LI>prenom: <input type="text" name="prenom" size=30></LI>
    <input type="button"
    value="Soumettre" onClick="if (verif()) {document.formulaire.submit()}"> <input
    type="reset" value="Effacer et
    recommencer">
    </form>
    </BODY>
    </HTML> 
    
    
    0