CustomValidationControl and jQuery
Recently I needed to use a custom validation control to check to see if multiple controls had something in them. Yes, I know this is what the required field validator is for. But the client wanted one message for all of the fields and this is the only way I could think of that made sense. Even if I used the validation summary control, I would get one message field with multiple messages in it. That’s not what we were looking for.
Anyhow, once I figured out that what we needed here was a custom validation control, I thought about using jQuery to make life a whole lot simpler.
While we can create client side validations with the custom validation control, one of the issues we face when writing the code is that we have to locate the fields on the page using javascript and retrieve their content prior to doing any validation.
The only viable way to do this using javascript is by using the getElementById() javascript function.
Since the fields are runat=”server” controls, this also means that we need to find the ClientID of each field or hard-code the ID in our javascript. If we use ClientID, this forces our javascript into the ASPX page, which a javascript purist would want to avoid.
By using jQuery instead, we are able to put the validation function in a separate js file that is loaded by our ASPX page. By adding classes to each of the input fields we want to validate, we are also able to retrieve the specific fields we want to validate without jumping through a whole lot of hoops.
Here’s what my jQuery code ended up looking like:
function CustomValidation(source, args) { args.IsValid = true; if ( $(".firstName").val() == '' || $(".lastName").val() == '' || $(".jobTitle").val() == '' || $(".emailAddress").val() == '' || $(".phoneNumber").val() == '' || $(".establishmentName").val() == '' || $(".postalCode").val() == '' ) args.IsValid = false; else SelectValidation(source, args); } function SelectValidation(source, args) { args.IsValid = true; if ($(".businessType option:selected").val() == '- please select -' || $(".businessType option:selected").val() == '- Veuillez choisir -') args.IsValid = false; }
This site is in English and French so I needed to do two checks in the SelectValidation() function. If it were in any more languages, I think I would set a global variable in the ASPX page using the resource file and check against the global variable instead of the hard-coded string.
One possible embellishment would be to class all the text fields as “notempty” and use the each() method to set args.IsValid = false if one was empty. I didn’t think of that soon enough when I originally wrote the code.
I’ve written custom validations using straight javascript and I can tell from experience using jQuery makes the whole process MUCH easier.
Other post in jQuery
- jQuery - The Man, The Myth, The Legend - October 8th, 2008
- Getting started with jQuery and ASP.NET - October 15th, 2008
- jQuery - Explaining Last Week's Code - October 21st, 2008
- Friday Books - "Learning jQuery" - October 24th, 2008
- jQuery Simple Selectors - October 28th, 2008
- Friday Books - "jQuery in Action" - October 31st, 2008
- jQuery Selectors - Looks just like CSS - November 6th, 2008
- VS2008 SP1 Hotfix to Support "-vsdoc.js" IntelliSense Doc Files - November 11th, 2008
- jQuery Looks like XPath - November 12th, 2008
- jQuery - class manipulation - November 19th, 2008
- jQuery - Events - December 2nd, 2008
- Host jQuery at Google (with Intellisense support) - December 10th, 2008
- jQuery - Calling Your Own Functions - December 16th, 2008
- Friday Books - jQuery Reference Guide - December 19th, 2008
- jQuery - Creating Plug-ins - December 23rd, 2008
- jQuery - Loading Partial Content - December 30th, 2008
- jQuery - Positioning Elements - January 6th, 2009
- AjaxToolKit TabControl Disabled Tab - January 12th, 2009
- jQuery, JSON, and ASP.NET - January 15th, 2009
- Review of the MDC at NYC - January 21st, 2009
- jQuery - Retrieving HTML Fragments - January 22nd, 2009
- jQuery GUI - Drag - February 3rd, 2009
- jQuery - Drop - February 12th, 2009
- jQuery UI - Resizable w/ ASP.NET Themes - February 18th, 2009
- jQuery, bgiframe and IE6 z-order hacks - February 19th, 2009
- jQuery - Sliders (scrollbars to the rest of us) - March 4th, 2009
- jQuery - Using Slider as a Scrollbar - March 12th, 2009
- jQuery - Auto Scrolling the Slider - March 23rd, 2009
- Live Presentation of jQuery - March 23rd, 2009
- Just a Week Away! - April 7th, 2009
- jQuery Tabs - April 9th, 2009
- jQuery Demos From Last Tuesday’s Presentation - April 16th, 2009
- jQuery – Accordion - May 6th, 2009
- CustomValidationControl and jQuery - May 11th, 2009
- Mixing ASP.NET, jQuery and JSON - May 12th, 2009
- jQuery Progressbar - May 20th, 2009
- jQuery – Dialog - June 2nd, 2009
- jQuery – Modal Dialog - June 9th, 2009
- Does jQuery Make Us Lazy? - June 18th, 2009
- jQuery Dialog – With Validation Controls - June 25th, 2009
- jQuery – Date Picker - July 2nd, 2009
- jQuery Splitter - July 21st, 2009
- jQuery Expand/Collapse Using Head Tags - October 15th, 2009
- Do you Need My Help? - November 18th, 2009
- Flash to jQuery - November 30th, 2009
- JQuery, Cufon, and Dynamic Content - December 1st, 2009
- jQuery, Each() and Async Gets - December 2nd, 2009
- jQuery and ASP.NET UpdatePanel - January 6th, 2010
- jQuery 1.4 Released - January 15th, 2010
Other Related Items:
jQuery: Novice to NinjajQuery: Novice to Ninja is a compilation of best-practice jQuery solutions to meet the most challenging JavaScript problems. In this question-and-a... Read More >
jQuery Cookbook: Solutions & Examples for jQuery Developers (Animal Guide)jQuery simplifies building rich, interactive web frontends. Getting started with this JavaScript library is easy, but it can take years to fully re... Read More >
Super Soft Luxury Cashmere Feel Fringe Scarf - (Choose from 33 fashion colors / patterns)Experience the soft luxurious feel of cashmere feel fashion neckwear. Get the look and feel of high end scarves at an affordable price. Choose from ou... Read More >










[...] CustomValidationControl and jQuery (Dave M. Bush) [...]
[...] CustomValidationControl and jQuery – Dave (Suggested by Elijah Manor) [...]