Controle de validation de formulaire

Soyez le premier à donner votre avis sur cette source.

Vue 65 903 fois - Téléchargée 18 745 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 380 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

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.