Controle de validation de formulaire

Soyez le premier à donner votre avis sur cette source.

Vue 65 748 fois - Téléchargée 18 727 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
inwebo
Messages postés
381
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
23 octobre 2014

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

22 janv. 2008 à 13:51
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...
hammouda1982
Messages postés
1
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
2 février 2007

2 févr. 2007 à 10:45
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
Pollux84
Messages postés
15
Date d'inscription
lundi 1 septembre 2003
Statut
Membre
Dernière intervention
15 février 2009

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

10 août 2006 à 15:29
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.