Done! You can find the latest revision here: http://jqueryjs.googlecode.com/svn/trunk/plugins/validate/
Jörn On Tue, Oct 21, 2008 at 7:08 PM, BobS <[EMAIL PROTECTED]> wrote: > > I would love to have this feature. It would save me a bunch of extra > lines of code. Any idea if and when this might be implemented into > the plugin? > > On Oct 21, 5:55 am, lightglitch <[EMAIL PROTECTED]> wrote: >> Done. >> >> http://dev.jquery.com/ticket/3503 >> >> On Oct 21, 9:53 am, "Jörn Zaefferer" <[EMAIL PROTECTED]> >> wrote: >> >> > Could you file a ticket for this?http://dev.jquery.com/newticket >> > (requires registration) >> >> > Thanks! >> >> > Jörn >> >> > On Mon, Oct 20, 2008 at 8:49 PM, lightglitch <[EMAIL PROTECTED]> wrote: >> >> > > I have made a patch for my app to therulesfunction to supportcustom >> > > messages: >> >> > > This is the new function, would be nice to have something similar to >> > > this. >> >> > > rules: function(command, argument) { >> > > var element = this[0]; >> >> > > if (command) { >> > > var staticRules = $.data(element.form, >> > > 'validator').settings.rules; >> > > var existingRules = >> > > $.validator.staticRules(element); >> > > switch(command) { >> > > case "add": >> > > $.extend(existingRules, >> > > $.validator.normalizeRule(argument)); >> > > staticRules[element.name] = existingRules; >> >> > > /**** PATCH ***/ >> > > if (argument.messages) { >> > > if ($.data(element.form, >> > > 'validator').settings.messages[element.name]) >> > > $.extend($.data(element.form, >> > > 'validator').settings.messages[element.name],argument.messages); >> > > else >> > > $.data(element.form, >> > > 'validator').settings.messages[element.name] = argument.messages; >> > > } >> > > /**** END PATCH ***/ >> > > break; >> > > case "remove": >> > > if (!argument) { >> > > delete staticRules[element.name]; >> > > return existingRules; >> > > } >> > > var filtered = {}; >> > > $.each(argument.split(/\s/), >> > > function(index, method) { >> > > filtered[method] = >> > > existingRules[method]; >> > > delete existingRules[method]; >> > > }); >> > > return filtered; >> > > } >> > > } >> >> > > var data = $.validator.normalizeRules( >> > > $.extend( >> > > {}, >> > > $.validator.metadataRules(element), >> > > $.validator.classRules(element), >> > > $.validator.attributeRules(element), >> > > $.validator.staticRules(element) >> > > ), element); >> >> > > // make sure required is at front >> > > if (data.required) { >> > > var param = data.required; >> > > delete data.required; >> > > data = $.extend({required: param}, data); >> > > } >> >> > > return data; >> > > }, >> >> > > And I use it like this: >> >> > > $("#field").rules("add", {"required":true,"range":[5,45],"messages": >> > > {"required":"The field can\'t be blank.","range":"The field must have >> > > 5 to 45 characters."}}); >> >> > > Hope it helps. >> >> > > On Oct 9, 11:00 pm, "Jörn Zaefferer" <[EMAIL PROTECTED]> >> > > wrote: >> > >> You can use metadata, too. Currently barely documented, and not really >> > >> recommended either, but works since 1.4. >> >> > >> <input class="{required:true,messages:{required:'required field'}}" >> > >> name="whatever" /> >> >> > >> Jörn >> >> > >> On Thu, Oct 9, 2008 at 5:20 PM, Bob Silverberg <[EMAIL PROTECTED]> >> > >> wrote: >> >> > >> > Thanks for the quick response. That fixed my problem. >> >> > >> > One more question: >> >> > >> > I'd like to addcustomerror messages to some of my dynamic >> > >> > validations. Is it correct that the only way to add acustomerror >> > >> >messageto a particular rule is either by: >> >> > >> > 1. using the form.validate() method >> > >> > 2. using $.validator.addMethod to clone an existing method >> >> > >> > Thanks, >> > >> > Bob >> >> > >> > On Thu, Oct 9, 2008 at 4:22 AM, Jörn Zaefferer >> > >> > <[EMAIL PROTECTED]> wrote: >> > >> >> Forrules("add") to work, the element's form has to be validated, that >> > >> >> is, call $("form").validate() first. I've updated the documentation >> > >> >> accordingly. >> >> > >> >> Not sure why the attr-approach failed, I'll take a look at that. >> >> > >> >> Jörn >> >> > >> >> On Thu, Oct 9, 2008 at 2:37 AM, BobS <[EMAIL PROTECTED]> wrote: >> >> > >> >>> I'm working on a server-side component that will generate all of my >> > >> >>> jQuery validationrulesfrom xml metadata, so I'm trying to >> > >> >>> dynamically addrulesone at a time. >> >> > >> >>> My first attempt was to use therules( "add",rules) syntax, but I'm >> > >> >>> getting an error on page load: >> >> > >> >>> jQuery.data(element.form, "validator") is undefined >> >> > >> >>> Here's the syntax I'm using: >> >> > >> >>> $("#VerifyPassword").rules('add',{equalTo: '#UserPass'}); which >> > >> >>> seems >> > >> >>> to be correct according to the docs. >> >> > >> >>> So, I decided to try setting attributes instead, which works fine >> > >> >>> for >> > >> >>> the equalTo. For example, this works: >> >> > >> >>> $("#VerifyPassword").attr('equalTo','#UserPass'); >> >> > >> >>> But when trying to use attr to set a range I cannot figure out what >> > >> >>> to >> > >> >>> pass in for the range. >> >> > >> >>> I've tried: >> > >> >>> $("#UserPass").attr('rangelength','[5,10]'); -> yeilds themessage >> > >> >>> "Please enter a value between NaN and 5 characters long." >> > >> >>> $("#UserPass").attr('rangelength',[5,10]); --> yields themessage >> > >> >>> "Please enter a value between 5 and NaN characters long." >> > >> >>> var theRange = [5,10]; $("#UserPass").attr('rangelength',theRange); >> > >> >>> -- >> > >> >>>> yields themessage"Please enter a value between 5 and NaN >> > >> >>> characters long." >> >> > >> >>> So, I really have 2 questions: >> >> > >> >>> 1. How can I a rule using therules( "add",rules) syntax, which >> > >> >>> would be my preferred approach? >> > >> >>> 2. If I need to add a validation using attr, what format do I use to >> > >> >>> pass in the value of the rangelength attribute? >> >> > >> >>> Thanks in advance for any help anyone can provide, >> > >> >>> Bob >> >> > >> > -- >> > >> > Bob Silverberg >> > >> >www.silverwareconsulting.com