HERE IS SOME JAVASCRIPT I USE TO VALIDATE DATES ON THE CLIENT SIDE function JValiDate(dateStr){ if (dateStr.length==0){ dateStr='99/99/9999'; } else if (dateStr.charAt(0)==' '){ dateStr='99/99/9999'; } while (dateStr.charAt(dateStr.length-1)==' ') dateStr=dateStr.substring(0,dateStr.length-1); var dtmp=''; var z='' for (var x=0; x < dateStr.length; x++) { z=dateStr.charAt(x); if (z>=0 && z<=9) { dtmp+=z; } else dtmp+='/'; } if (dtmp.charAt(1)=='/') dtmp='0'+dtmp; if (dtmp.charAt(4)=='/') dtmp=dtmp.substring(0,3)+'0'+dtmp.substring(3,dtmp.length); // alert ('>'+dtmp+'<'); // alert (dtmp.length); if (dtmp.length==8){ tyear=dtmp.substring(6,8); // alert(tyear) if (tyear<31) { dtmp=dtmp.substring(0,6)+'20'+tyear } else { dtmp=dtmp.substring(0,6)+'19'+tyear; } } var a=dtmp var err=0 var psj=0; if (a.length != 10) err=1 var b = a.substring(0, 2)// month var c = a.substring(2, 3)// '/' var d = a.substring(3, 5)// day var e = a.substring(5, 6)// '/' var f = a.substring(6, 10)// year // basic error checking if (b<1 || b>12) err = 1 if (c != '/') err = 1 if (d<1 || d>31) err = 1 if (e != '/') err = 1 if (f<1900 || f>2099) err = 1 // advanced error checking // months with 30 days if (b==4 || b==6 || b==9 || b==11){ if (d==31) err=1 } // february, leap year if (b==2){ // feb var g=parseInt(f/4) if (isNaN(g)) { err=1 } if (d>29) err=1 if (d==29 && ((f/4)!=parseInt(f/4))) err=1 } if (err==1){ if (dateStr!='99/99/9999'){ alert('Date '+dtmp+' is not valid!'); } return '' } else { return dtmp; } } HERE IS EXAMPLE OF USE <input type="text" name="wpodate" size="9" maxlength="10" value="<dtml-var "podate.toZone('US/Central').strftime('%m-%d-%Y')">" onChange="this.value=JValiDate(this.value)"> __________________________________________________________________ Jim Sanford . Database Engineer / \ / Accelerated Technology, Inc. / / 720 Oak Circle Drive East / / \ Mobile, AL 36609 / / \ Voice: 334-661-5770 fax: 334-661-5788 / \ E-Mail: jsanford@atinucleus.com Web: http://www.atinucleus.com Source Code, No Royalties, Any CPU...It just make sense ! __________________________________________________________________ ----- Original Message ----- From: Henny van der Linde <linde@inline-info.nl> To: Zope mailing list <zope@zope.org> Sent: Wednesday, December 08, 1999 5:13 PM Subject: [Zope] Validating data entry (dates) Hi, Is there an elegant way to validate fields in a form before submitting. For example: I have a date field. I want to check, before submitting the form, if the date entered is valid. Is there someting like a function as: Date.IsValid (I haven a Delphi background). What I don't want is a Zope generated standard error screen. I want a custom designed error message/page. thanks, Henny van der Linde _______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope No cross posts or HTML encoding! (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )