Hi Jörn Many thanks for your suggestion. In fact the problem was an obvious one that lay in the metadata. I had a class name of 'date' in my input field which was obviously clashing. I had totally overlooked that.
Many thanks for writing a very flexible plugin. All the best George On Feb 18, 4:10 pm, Jörn Zaefferer <joern.zaeffe...@googlemail.com> wrote: > Regular expressions are read to read, can't spot any obvious error > with that, especially considering that it fails only in Safari. > > Here is a custom method for italian dates, not using regex, maybe it helps: > > jQuery.validator.addMethod( > "dateITA", > function(value, element) { > var check = false; > var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/ > if( re.test(value)){ > var adata = value.split('/'); > var gg = parseInt(adata[0],10); > var mm = parseInt(adata[1],10); > var aaaa = parseInt(adata[2],10); > var xdata = new Date(aaaa,mm-1,gg); > if ( ( xdata.getFullYear() == aaaa ) && ( > xdata.getMonth () == mm - > 1 ) && ( xdata.getDate() == gg ) ) > check = true; > else > check = false; > } else > check = false; > return this.optional(element) || check; > }, > "Please enter a correct date" > ); > > From:http://jquery.bassistance.de/validate/additional-methods.js > > Jörn > > On Wed, Feb 18, 2009 at 3:25 PM, George <george.bea...@googlemail.com> wrote: > > > Hi Folks, > > > Wondered if anyone could help on this, I've been stuck on it for quite > > some time. > > > I'm trying to validate a date field using a UK date, here's my code: > > > $(document).ready(function(){ > > $('#arrival-arrival-date').datepicker({ minDate: new Date > > (),defaultDate: +1,dateFormat: 'dd/mm/yy',constrainInput: false }); > > > $.validator.addMethod('ukdate', > > function(value, element) { > > > var regex = > > /^(0[1-9]|[12][0-9]|3[01])[\/](0[1-9]|1[012])[\/] > > ((19|20)\d\d)$/; > > > > console.log(value.match(regex)); > > return this.optional(element) || value.match(regex); > > }, "Please specify a UK date"); > > > // validate signup form on keyup and submit > > $("#theForm").validate({ > > debug:true, > > errorClass: > > 'redBorder', > > rules: { > > 'arrival-arrival-date': { > > ukdate: true}, > > 'arrival-stay-duration': { > > required: true, > > min: 1} > > }, > > > > highlight: function(element, errorClass) { > > $(element).fadeOut(function() { > > $(element).fadeIn() > > > > }) > > }, > > > > messages: { > > > > 'arrival-arrival-date':'', > > > > 'arrival-stay-duration':'' > > > > }, > > > > highlight: function(element, errorClass) { > > > > $(element).addClass(errorClass); > > > > }, > > > > unhighlight: function(element, errorClass) { > > > > $(element).removeClass(errorClass); > > > > }, > > > > errorPlacement: function(error, element) { > > error.appendTo('errorNotes'); > > } > > }); > > > And you can see a demo of it in action at > >http://dev.letsbookrooms.co.uk/uk/perthshire/parklandshotel/. It > > works fine on IE, Opera and FF, fails in Safari for any dates where > > the dd part is higher than 12. > > > I think it must be an issue with the validator plugin as I've tested > > the regular expression on its own in Saari and it works fine. > > > Cheers > > > George