begin process at 2010 03 21 11:04:22
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > CONTROLE DE VALIDATION DE FORMULAIRE

CONTROLE DE VALIDATION DE FORMULAIRE


 Information sur la source

Note :
7,83 / 10 - par 6 personnes
7,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaire Niveau :Initié Date de création :18/01/2002 Date de mise à jour :23/06/2003 11:55:59 Vu / téléchargé :53 265 / 18 103

Auteur : shaiulud

Ecrire un message privé
Site perso
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Récupération des champs du formulaire (texte, radio bouton, checkbox, select, textearea)
Vérification de données (date, eMail, chaine, carte de crédit)  

Source

  • /*
  • ###########################################################
  • # Form control library
  • # Shaiulud - www.shaiulud.fr.st -
  • # Created : 18/01/2002
  • # Updated : 23/06/2003
  • ###########################################################
  • */
  • //##################
  • //# GetFormIputs #
  • //##################
  • //radio
  • function getRadioVal(rb)
  • {var L=rb.length;var ret="";
  • for (var i = 0 ; i< L ; i++)
  • {if(rb[i].checked) {ret=rb[i].value;break;}}
  • return(ret);
  • }
  • //text, password, hidden, textarea, file
  • function getTextVal(tf)
  • {var ret=tf.value;
  • return(ret);
  • }
  • //checkbox
  • function getCheckboxVal(cb)
  • {var L=cb.length;var ret='';
  • for (i = 0; i < L; i++)
  • {if (cb[i].checked==true) {ret += cb[i].value + '\n';}}
  • return(ret);
  • }
  • //select
  • function getSelectVal(sel)
  • {var ret='';
  • ret=sel.options[sel.selectedIndex].text;
  • return(ret);
  • }
  • //#############
  • //# Control #
  • //#############
  • function IsDate(JJ, MM, AAAA)
  • {if(JJ<1||JJ>31||MM<1||MM>12) return false;
  • if(MM==2)
  • {if(JJ==30||JJ==31) return false;
  • if(JJ==29) return ((AAAA%4==0&&AAAA%100!=0)||AAAA%400==0);
  • }
  • else if(JJ==31) return !(MM==4||MM==6||MM==9||MM==11);
  • return true;
  • }
  • function IsEMail(emailStr)
  • {var validDomain=false;
  • var AtPos = emailStr.lastIndexOf("@");
  • var DotPos= emailStr.lastIndexOf(".");
  • if((AtPos>0)&&(DotPos>0)&&(AtPos<DotPos))
  • {var domainExtList='ac.ad.ae.af.ag.ai.al.am.an.ao.aq.ar.as.at.au.aw
  • .az.ba.bb.bd.be.bf.bg.bh.bi.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca
  • .cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.cr.cs.cu.cv.cx.cy.cz.de.dj.dk.dm
  • .do.dz.ec.ee.eg.eh.er.es.et.fi.fj.fk.fm.fo.fr.fx.ga.gb.gd.ge.gf.gg .gh
  • .gi.gl.gm.gn.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in
  • .io.iq.ir.is.it.je.jm.jo.jp.ke.kg.kh.ki.km.kn.kp.kr.kw.ky.kz.la.lb.lc.li.lk
  • .lr.ls.lt.lu.lv.ly.ma.mc.md.mg.mh.mk.ml.mm.mn.mo.mp.mq.mr.ms.mt
  • .mu.mv.mw.mx.my.mz.na.nc.ne.nf.ng.ni.nl.no.np.nr.nt.nu.nz.om
  • .pa.pe.pf.pg.ph.pk.pl.pm.pn.pr.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb
  • .sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.st.su.sv.sy.sz.tc.td.tf.tg.th
  • .tj.tk.tm.tn.to.tp.tr.tt.tv.tw.tz.ua.ug.uk.um.us.uy.uz.va.vc.ve.vg
  • .vi.vn.vu.wf.ws.ye.yt.yu.za.zm.zr.zw.com.edu.gov.int.mil.net.org .biz.pro.info.aero.name.coop.arpa.nato.museum.EoF';
  • var domainExt=domainExtList.split(".");
  • var emailExt=emailStr.substr(DotPos+1);
  • emailExt=emailExt.toLowerCase();
  • for(i=0;domainExt.length;i++)
  • {if (domainExt[i]=='EoF') break; //infinite loop else
  • if (emailExt==domainExt[i]) {validDomain=true;break;}
  • }
  • }
  • return(validDomain);
  • }
  • function IsNumberString(NumStr)
  • {var regEx=/^[0-9]+$/;
  • var ret=false;
  • if (regEx.test(NumStr)) ret=true;
  • return ret;
  • }
  • function IsAlphaNumString(NumStr)
  • {var regEx=/^[A-Za-z0-9]+$/;
  • var ret=false;
  • if (regEx.test(NumStr)) ret=true;
  • return ret;
  • }
  • function IsAlphaString(NumStr)
  • {var regEx=/^[A-Za-z]+$/;
  • var ret=false;
  • if (regEx.test(NumStr)) ret=true;
  • return ret;
  • }
  • function isCreditCard(st) {
  • // Encoding only works on cards with less than 19 digits with Luhn mod-10
  • if (st.length > 19) return (false);
  • sum=0;mul=1;l=st.length;
  • for(i=0;i<l;i++)
  • {digit = st.substring(l-i-1,l-i);
  • tproduct = parseInt(digit ,10)*mul;
  • if (tproduct >= 10)
  • sum += (tproduct % 10) + 1;
  • else
  • sum += tproduct;
  • if (mul == 1)
  • mul++;
  • else
  • mul--;
  • }
  • if ((sum % 10) == 0)
  • return (true);
  • else
  • return (false);
  • }
  • function isVisa(cc)
  • {if(((cc.length==16)||(cc.length==13))&&(cc.substring(0,1)==4)) return isCreditCard(cc);
  • return false;
  • }
  • function isMasterCard(cc)
  • {firstdig = cc.substring(0,1);
  • seconddig = cc.substring(1,2);
  • if((cc.length==16)&&(firstdig==5)&&((seconddig>=1)&&(seconddig<=5))) return isCreditCard(cc);
  • return false;
  • }
  • function isAmericanExpress(cc)
  • {firstdig = cc.substring(0,1);
  • seconddig = cc.substring(1,2);
  • if((cc.length==15)&&(firstdig==3)&&((seconddig==4)||(seconddig==7))) return isCreditCard(cc);
  • return false;
  • }
  • function isAnyCard(cc)
  • {if(!isCreditCard(cc)) return false;
  • if (isMasterCard(cc)) alert('Master Card');
  • if (isVisa(cc)) alert('Visa Card');
  • if (isAmericanExpress(cc)) alert('American Express');
  • if(!isMasterCard(cc) && !isVisa(cc) && !isAmericanExpress(cc)) return false;
  • return true;
  • }
/*
###########################################################
#  Form control library
#  Shaiulud                     - www.shaiulud.fr.st -                                 
#                             Created : 18/01/2002
#                             Updated : 23/06/2003
###########################################################
*/

//##################
//#  GetFormIputs  #
//##################
//radio
function getRadioVal(rb)
{var L=rb.length;var ret="";
for (var i = 0 ; i< L ; i++)
{if(rb[i].checked) {ret=rb[i].value;break;}}
return(ret);
}

//text, password, hidden, textarea, file
function getTextVal(tf)
{var ret=tf.value;
return(ret);
}

//checkbox
function getCheckboxVal(cb)
{var L=cb.length;var ret='';
for (i = 0; i < L; i++)
{if (cb[i].checked==true) {ret += cb[i].value + '\n';}}
return(ret);
}

//select
function getSelectVal(sel)
{var ret='';
ret=sel.options[sel.selectedIndex].text;
return(ret);
}



//#############
//#  Control  #
//#############
function IsDate(JJ, MM, AAAA)
{if(JJ<1||JJ>31||MM<1||MM>12) return false;
if(MM==2)
{if(JJ==30||JJ==31) return false;
  if(JJ==29) return ((AAAA%4==0&&AAAA%100!=0)||AAAA%400==0);
}
else if(JJ==31) return !(MM==4||MM==6||MM==9||MM==11);
return true;
}

function IsEMail(emailStr)
{var validDomain=false;
var AtPos = emailStr.lastIndexOf("@");
var DotPos= emailStr.lastIndexOf(".");
if((AtPos>0)&&(DotPos>0)&&(AtPos<DotPos))
{var domainExtList='ac.ad.ae.af.ag.ai.al.am.an.ao.aq.ar.as.at.au.aw
.az.ba.bb.bd.be.bf.bg.bh.bi.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca
.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.cr.cs.cu.cv.cx.cy.cz.de.dj.dk.dm
.do.dz.ec.ee.eg.eh.er.es.et.fi.fj.fk.fm.fo.fr.fx.ga.gb.gd.ge.gf.gg .gh
.gi.gl.gm.gn.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in
.io.iq.ir.is.it.je.jm.jo.jp.ke.kg.kh.ki.km.kn.kp.kr.kw.ky.kz.la.lb.lc.li.lk
.lr.ls.lt.lu.lv.ly.ma.mc.md.mg.mh.mk.ml.mm.mn.mo.mp.mq.mr.ms.mt
.mu.mv.mw.mx.my.mz.na.nc.ne.nf.ng.ni.nl.no.np.nr.nt.nu.nz.om
.pa.pe.pf.pg.ph.pk.pl.pm.pn.pr.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb
.sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.st.su.sv.sy.sz.tc.td.tf.tg.th
.tj.tk.tm.tn.to.tp.tr.tt.tv.tw.tz.ua.ug.uk.um.us.uy.uz.va.vc.ve.vg
.vi.vn.vu.wf.ws.ye.yt.yu.za.zm.zr.zw.com.edu.gov.int.mil.net.org .biz.pro.info.aero.name.coop.arpa.nato.museum.EoF';
  var domainExt=domainExtList.split(".");
  var emailExt=emailStr.substr(DotPos+1);
  emailExt=emailExt.toLowerCase();
  for(i=0;domainExt.length;i++)
  {if (domainExt[i]=='EoF')  break; //infinite loop else
   if (emailExt==domainExt[i])  {validDomain=true;break;}
  }
}
return(validDomain);
}

function IsNumberString(NumStr)
{var regEx=/^[0-9]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

function IsAlphaNumString(NumStr)
{var regEx=/^[A-Za-z0-9]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

function IsAlphaString(NumStr)
{var regEx=/^[A-Za-z]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

function isCreditCard(st) {
  // Encoding only works on cards with less than 19 digits with Luhn mod-10
  if (st.length > 19) return (false);
  sum=0;mul=1;l=st.length;
  for(i=0;i<l;i++)
  {digit = st.substring(l-i-1,l-i);
   tproduct = parseInt(digit ,10)*mul;
   if (tproduct >= 10)
    sum += (tproduct % 10) + 1;
   else
    sum += tproduct;
   if (mul == 1)
    mul++;
   else
    mul--;
  }
  if ((sum % 10) == 0)
   return (true);
  else
   return (false);
}

function isVisa(cc)
{if(((cc.length==16)||(cc.length==13))&&(cc.substring(0,1)==4)) return isCreditCard(cc);
return false;
}

function isMasterCard(cc)
{firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if((cc.length==16)&&(firstdig==5)&&((seconddig>=1)&&(seconddig<=5))) return isCreditCard(cc);
  return false;
}

function isAmericanExpress(cc)
{firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if((cc.length==15)&&(firstdig==3)&&((seconddig==4)||(seconddig==7))) return isCreditCard(cc);
  return false;
}

function isAnyCard(cc)
{if(!isCreditCard(cc)) return false;

if (isMasterCard(cc)) alert('Master Card');
if (isVisa(cc)) alert('Visa Card');
if (isAmericanExpress(cc)) alert('American Express');

if(!isMasterCard(cc) && !isVisa(cc) && !isAmericanExpress(cc)) return false;
return true;
}

 Conclusion

Rappel:
inclure la librarie :: &lt;script language="JavaScript" src="formControl.js"&gt;&lt;/script&gt;
appel d'un objet du formulaire : document.formName.objectName ou this.formName.objectName  

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

DÉSACTIVER UN BOUTON SUBMIT APRÈS ENVOI DU FORMULAIRE par SoftDeath
IMPLEMENTATION DE RANDOM PERSONNALISÉ par ousous
IMPLEMENTATION DE HASHTABLE par ousous
JAVASCRIPT.UTIL.ITERATOR par ousous
Source avec Zip Source avec une capture PALETTE DE COULEURS par titnome

Commentaires et avis

Commentaire de fil le 06/08/2002 16:40:43

Pourrait on avoir des explications sur ces fonctions qui on l'air d'etre intéréssante, merci pour tout les audodidactes et les autres...

Commentaire de Jackboy le 06/12/2002 04:41:12

héhé thanks, mais peut tu donner un exemple pratique avec un fichier html

Commentaire de eax le 23/05/2003 00:41:21

c vrai c sympa tout ça, mais qq commentaires seraient les bienvenus

Commentaire de Fabio972 le 09/07/2003 09:23:29

Ben... il me semble que le fichier .html compris dans l'archive explique bien les fonctions non ?!?

En tous cas, source excellente. Bravo !!!

Commentaire de chris81 le 06/06/2004 11:23:30

un e question est ce que ta fonction isdate permet de verifier si une date de fin est plus grande qu'une date de debut?
merci

Commentaire de karlouche le 19/01/2005 22:41:24

pourquoi tu as des dates de début qui commence après une date de fin? Bizard Bizard...

Commentaire de nihaoma le 10/08/2006 15:29:34

bonjour,

pour ma part, j'aimerai avoir un script qui vérifie qu'un visiteur n'a pas saisi de code HTML et/ou de language de script dans un des champ du formulaire...quelqu'un aurait ca sous le coude ?

merci

cordialement

Commentaire de Pollux84 le 03/10/2006 12:28:04

dommage que la source ne soit pas commenté :(

Commentaire de hammouda1982 le 02/02/2007 10:45:47

salut ,
est ce que je peut verifier le type float (par exemple 10.12 et non 10,12)afin de controler la presene du point .
merci

Commentaire de dabro le 22/01/2008 13:51:44

Salut,

On pourrait avoir un petit exemple de formulaire avec un bouton Envoyer qui fait le contrôle ? Ce serait cool, on n'est pas tous des bons... Merci d'avance à celui (ou celle) qui prendra pitié de nous, les humbles...

Commentaire de inwebo le 29/04/2009 14:52:25

Merci, j'avais besoin de ces deux fontions isNumberString() isAlphaNumString();

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales