Closed bwilson closed 10 years ago
In your loaded Javascript, you must add a method for your validator. Here's an example:
jQuery.validator.addMethod("noUnderscore", function(value, element) { return this.optional(element) || value.indexOf('_') < 0; }, "Cannot contain underscores");
What I did was include my own additional-methods.js file (as validate-additional-methods.js) in a module that I also include along with 'jquery-validation-ui' or 'jquery-validation-ui-qtip'.
In config.groovy:
CustomConstraintsMap = [ phone:'true', // International phone number validation phoneUS:'true', alphanumeric:'true', letterswithbasicpunc:'true', lettersonly:'true', numbersonly:'true', noUnderscore:'true' ]
Also, if you need server-side validation as well, you can add it in doWithSpring with ConstrainedProperty.registerNewConstraint.
Thanks, that works!
I created a custom validator by adding a Javascript function to CustomConstraintsMap in Config.groovy. The result is that renderValidationScript writes the function directly where the method name should go in the rules map. This produces a JavaScript error: "t.validator.methods[a] is undefined."
According to the jQuery Validation Plugin docs, the custom code should go in $.validator.addMethod.
I'm not sure if I'm doing something wrong or perhaps the approach has changed.