Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONTROLE DE VALIDATION DE FORMULAIRE


Information sur la source

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é: 45 400 / 17 668

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
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

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
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...

signaler à un administrateur
Commentaire de Jackboy le 06/12/2002 04:41:12

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

signaler à un administrateur
Commentaire de eax le 23/05/2003 00:41:21

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

signaler à un administrateur
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 !!!

signaler à un administrateur
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

signaler à un administrateur
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...

signaler à un administrateur
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

signaler à un administrateur
Commentaire de Pollux84 le 03/10/2006 12:28:04

dommage que la source ne soit pas commenté :(

signaler à un administrateur
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

signaler à un administrateur
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...

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,03 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.