Controle de validation de formulaire

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 / Exemple :


/*
###########################################################
#  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 :: <script language="JavaScript" src="formControl.js"></script>
appel d'un objet du formulaire : document.formName.objectName ou this.formName.objectName

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.