Blog from Saravanan Arumugam

Let us talk about Technologies

Tag Archives: validation

Cancel Validation for a Submit button when jQuery validation is enabled in the page


I have a MVC 3 page where I wanted the unobtrusive validation to happen for my input fields. But on click of one of the buttons I don’t want to trigger the javascript validation.

While going through “jquery.validate.js” for a solution, the solution I found was an easy one.

Here’s the code from jquery.validation.js that gave me the clue.

// allow suppresing validation by adding a cancel class to the submit button
inputsAndButtons.filter(".cancel").click(function () {
	validator.cancelSubmit = true;
});

So if I simply add the class=“cancel” to a submit button, the validation is ignored for that click.

jQuery validation on hidden form elements


I recently wrote a code where I will have a wizard like page with multiple tabs. Each tab is a Div element, on clicking on a tab, one div will be visible while hiding the other divs, an usual design.

I implemented an unobtrusive validation on the web page, and it all worked well.

 

After I upgraded my jquery.validation.js, my web page’s validation was not as expected. Then I compared the two versions of jquery.validation.js files (1.8.1 and 1.9).

image

In the comparison it was evident that by default the jquery validator ignores all the hidden elements in 1.9 version, whereas 1.8 does validate every control in the page, no matter they are visible or invisible.

 

Of course validating only the visible controls is an useful feature, but not in my case. So I had to override the default value.

I wrote the following code in the page to instruct the validator not to ignore the hidden controls.

<script type="text/javascript" language="javascript">
$.validator.setDefaults({ ignore: [] });
</script>

Setting the default has to happen right when we include the scripts on the page. This would not work if we do it after the page load in any control’s event handle.