18 juillet 2004

Quelques contrôles en javascript

Il est nécessaire de mettre les fonctions javascript entre les balises <head> et </head> du document HTML
et appeler ensuite la fonction au sein de la balise <body>.

1. Contrôle de saisie d'un champ non vide

<script language = « javascript »>
<!--
function verif()
{
if (window.document.monform.monchamp.value=''){alert('champ vide')} ;
//-->
}
</script>

Trois actions possibles pour appeler ce script :
<form onSubmit = « verif() »>
<input type = "text" name = "monchamp" size="15" onBlur="verif()">
<a href = "javascript:verif()">Vérifiez la validité des champs</a>

2. Contrôle de format numérique.

<script language="Javascript">
<!-- Begin
function isNumeric(Data)
{
numChars = ".0123456789";
var isNum = true;
var index = 0;
while ((index < Data.length) && (isNum))
     {
     isNum = (numChars.indexOf(Data.charAt(index)) != -1);
     index ++;
     }
if (!isNum)
     {
     window.alert("Erreur ! Saisissez un nombre entier");
     }
}
//  end script -->
</script>

Appel de la fonction :
<input type="text" name=" monchamp " onblur = "isNumeric(this.value);">

3. Contrôle de format date.

<script language='JavaScript'>
function CheckDate(d) {
      // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
      // Le séparateur est défini dans la variable separateur
      var amin=1900; // année mini
      var amax=2005; // année maxi
      var separateur="/"; // separateur entre jour/mois/annee
      var j=(d.substring(0,2));
      var m=(d.substring(3,5));
      var a=(d.substring(6));
      var ok=1;
      if ( ( (isNaN(j)) || (j<1) || (j>31) ) && (ok==1) && (d!="")) {
         alert("Le jour n'est pas correct."); ok=0;
      }
      if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) && (d!="")) {
         alert("Le mois n'est pas correct."); ok=0;
      }
      if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) && (d!="")) {
         alert("L'année n'est pas correcte."); ok=0;
      }
      if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) && (d!="")) {
         alert("Les séparateurs doivent être des "+separateur); ok=0;
      }
      if (ok==1 && (d!="")) {
         var d2=new Date(a,m-1,j);
         j2=d2.getDate();
         m2=d2.getMonth()+1;
         a2=d2.getYear();
         if (a2<=100 ) {a2=1900+a2}
         if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            alert("La date "+d+" n'existe pas !");
            ok=0;
         }
      }
      return ok;
   }
</script>

Appel de la fonction :
<input type="text" name="monchamp" onblur = "CheckDate(this.value);" >

4. Contrôle de format chaîne de caractères.

<script language = "JavaScript">
function isChar (Data)
{
varChars = "éèàùûôoöë'-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var isChar = true;
var index = 0;
while ((index < Data.length) && (isChar))
     {
     isChar = (varChars.indexOf(Data.charAt(index)) != -1);
     index ++;
     }
if (!isChar)
     {
     window.alert("Erreur ! Saisissez une chaine de caractères");
     }
}
</script>


Appel de la fonction :
<input type="text" name=" monchamp " onblur = "isChar (this.value);">

Posté par fatihaelh à 19:11 - Javascript - Commentaires [5] - Permalien [#]

Commentaires

    Super malgré la ch'tite erreur

    Je crois devoir signaler une toute petite erreur dans ce script qui fonctionne parfaitement par ailleurs.
    Dans le dernier if

    if (ok==1 && (d!="")) {
    var d2=new Date(a,m-1,j);

    ce serait pas plutôt

    if (ok==0 && (d!=""))

    ???

    Posté par Dan, 16 novembre 2005
  • Ce n'est pas une erreur

    Bonjour,

    En relisant le script, je ne pense pas que ce soit une erreur. Je ne l'ai pas retesté mais je trouve que c'est logique. Car c'est uniquement quand il n'y a plus d'erreur et donc c'est quand ok=1 qu'on récupère les jour, mois et année.

    Posté par Fatiha, 23 novembre 2005
  • Bravo et merci !

    Merci pour une de vos fonctions de validation javascript (uniquement des caracteres dans un champ de formulaire)

    Posté par dims, 08 mars 2005
  • Bravo et merci !

    Merci pour une de vos fonctions de validation javascript (uniquement des caracteres dans un champ de formulaire)

    Posté par dims, 08 mars 2005
  • Ce fut un plaisir

    Salut,

    Ce fut un plaisir de voir que cela a pu t'aider.

    @+
    Fatiha

    Posté par fatiha, 07 avril 2005

Poster un commentaire