Form Control JavaScript DHTML



  
    JsLib 1.3 - Exemple - forms.js
    
    
    
    
/* forms.js
 * Role : formate, controle et recupere le contenu des formulaires
 * Projet : JsLib
 * Auteur : Etienne CHEVILLARD (echevillard@users.sourceforge.net)
 * Version : 1.3
 * Creation : 02/05/2001
 * Mise a jour : 23/02/2005
 */
// --- Variables globales ---
// variables pour les parametres de l'URL
var forms_cle;
var forms_val;
// recupere les parametres de l'URL
if (window.location.search && (window.location.search.indexOf("=")>1)) {
  var fpar=(window.location.search.substring(1, window.location.search.length)).split("&");
  forms_cle=new Array(fpar.length);
  forms_val=new Array(fpar.length);
  for (var i=0; i    forms_cle[i]=fpar[i].substring(0, fpar[i].indexOf("="));
    forms_cle[i]=unescape((forms_cle[i].split("+")).join(" "));
    forms_val[i]=fpar[i].substring(fpar[i].indexOf("=")+1, fpar[i].length);
    forms_val[i]=unescape((forms_val[i].split("+")).join(" "));
  }
}
// --- Fonctions ---
// supprime les espaces qui commencent ou qui terminent la chaine specifiee
function forms_suppEsp(chaine) {
  var fdeb;
  var ffin;
  fdeb=chaine;
  ffin=chaine;
  for(var i=0; ((i    ffin=ffin.substring(1, ffin.length);
  }
  fdeb=ffin;
  for(var i=fdeb.length-1; ((i>=0) && (fdeb.charAt(i)==' ')); i--)
    ffin=ffin.substring(0, ffin.length-1);
  return (ffin);
} // fin forms_suppEsp(chaine)
// verifie que le formulaire specifie est rempli puis l'expedie
function envoyerFormulaire(formulaire) {
  for (var i=0; i    if (formulaire.elements[i].type.substring(0, 4)=="sele") {
      if (!verifierPresence(formulaire.elements[i].options[formulaire.elements[i].selectedIndex].value)) {
        alert("Veuillez choisir une valeur dans la liste \""+formulaire.elements[i].name+"\".");
        formulaire.elements[i].focus();
        return false;
      }
    }
    if (formulaire.elements[i].type.substring(0, 4)=="text") {
      if (!verifierPresence(formulaire.elements[i].value)) {
        alert("Veuillez saisir une valeur dans le champ \""+formulaire.elements[i].name+"\".");
        formulaire.elements[i].focus();
        return false;
      }
    }
  }
  formulaire.submit();
  return true;
} // fin envoyerFormulaire(formulaire)
// formate le contenu d'un champ de formulaire de type "Email"
function formaterChampEmail(champ) {
  var femail;
  femail=champ.value;
  femail=femail.split('<').join('');
  femail=femail.split('>').join('');
  femail=femail.split('"').join('');
  femail=femail.split(' ').join('');
  champ.value=femail;
  return true;
} // fin formaterChampEmail(champ)
// formate le contenu d'un champ de formulaire de type "Nom"
function formaterChampNom(champ) {
  var fnom;
  var fpos;
  fnom=forms_suppEsp(champ.value);
  for(var i=0; i    while ((fnom.charAt(i)==' ') && (fnom.charAt(i+1)==' ')) {
      fnom=fnom.substring(0, i)
        +fnom.substring(i+1, fnom.length);
    }
  }
  fnom=fnom.substring(0, 1).toUpperCase()
    +fnom.substring(1, fnom.length).toLowerCase();
  for(var i=0; i    if ((fnom.charAt(i)=='-') || (fnom.charAt(i)==' ')) {
      fnom=fnom.substring(0, i)+fnom.charAt(i)
       +fnom.substring(i+1, i+2).toUpperCase()
       +fnom.substring(i+2, fnom.length);
    }
  }
  champ.value=fnom;
  return true;
} // fin formaterChampNom(champ)
// formate les parametres contenus dans l'URL de la page
function formaterParametres() {
  if (!window.location.search) { return ""; }
  var ftxt="";
  for (var i=0; i    ftxt+="" + forms_cle[i] + " :";
    ftxt+="" + forms_val[i] + "";
  }
  ftxt+="";
  return (ftxt);
} // fin formaterParametres()
// retourne le nombre de parametres contenus dans l'URL de la page
function nombreParametres() {
  if (window.location.search && (window.location.search.indexOf("=")>1)) {
    return (forms_cle.length);
  } else {
    return (0);
  }
} // fin nombreParametres()
// retourne la valeur du parametre correspondant a la cle indiquee
function valeurParametre(cle) {
  if (window.location.search) {
    for (var i=0; i      if (forms_cle[i]==forms_suppEsp(cle)) return (forms_val[i]);
    }
  }
  return ("");
} // fin valeurParametre(cle)
// verifie que l'adresse e-mail specifiee est valide
function verifierEmail(email) {
  var fadr;
  var fnom;
  var farob;
  var fdom;
  var fpoint;
  var fext;
  if (!verifierPresence(email)) { return false; }
  fadr=forms_suppEsp(email);
  farob=fadr.lastIndexOf("@");
  if (farob!=fadr.indexOf("@")) { return false; }
  fnom=fadr.substring(0, farob);
  if (fnom.length<1) { return false; }
  fpoint=fadr.lastIndexOf(".");
  if (fpoint  fext=fadr.substring(fpoint+1, fadr.length);
  if (fext.length<2) { return false; }
  fdom=fadr.substring(farob+1, fpoint);
  if (fdom.length<2) { return false; }
  return true;
} // fin verifierEmail(email)
// verifie que la chaine specifiee n'est pas vide
function verifierPresence(chaine) {
  if (forms_suppEsp(chaine).length>0) { return true; }
  else { return false; }
} // fin verifierPresence(chaine)
    
  
  
    

JsLib 1.3


    

    

Exemple - forms.js


    
    
      document.write("

Nombre de paramètres dans l'URL : " + nombreParametres() + "

");
      if (nombreParametres() > 0) { document.write(formaterParametres()); }
    
    



    

Utilisez ce formulaire pour vérifier la validité d'une adresse e-mail :
      
        Adresse e-mail à vérifier :

        
                onClick="if (verifierEmail(document.f1.Adresse.value)) alert('Adresse e-mail valide.')
          else alert('Adresse e-mail non valide.')">
      
    



    
    

Utilisez ce formulaire pour simuler l'envoi d'un courrier électronique :
      
      
      
        
          Votre nom :
        
          
        
          Votre adresse e-mail :
        
          
        
          Sujet du courrier :
        
          
        
          Contenu :
        
          
        
          Votre opinion sur JsLib ?

        
           Excellent

           Pas mal

           Nul
        
          Connaissance du site :

        
          
            --- Faites un choix ---
            Moteur de recherche
            Bouche à oreilles
            Article de presse
          
        
          Remarque :
        
          
          Je souhaite une réponse rapide.