Controle de validation de formulaire

Soyez le premier à donner votre avis sur cette source.

Vue 65 403 fois - Téléchargée 18 696 fois

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

Ajouter un commentaire

Commentaires

Messages postés
381
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
23 octobre 2014

Merci, j'avais besoin de ces deux fontions isNumberString() isAlphaNumString();
Messages postés
24
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
25 novembre 2016

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...
Messages postés
1
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
2 février 2007

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
Messages postés
15
Date d'inscription
lundi 1 septembre 2003
Statut
Membre
Dernière intervention
15 février 2009

dommage que la source ne soit pas commenté :(
Messages postés
140
Date d'inscription
jeudi 2 mai 2002
Statut
Membre
Dernière intervention
2 février 2010

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
Afficher les 11 commentaires

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.