Brad Wilson has a couple great articles on unobtrusive validation and unobtrusive ajax.
It is also shown very nicely in this Pluralsight video in the section on " AJAX and JavaScript".

Basically, it is simply Javascript validation that doesn't pollute your source code with its own validation code. This is done by making use of data- attributes in HTML.

Answer from bertl on Stack Overflow
🌐
Habr
habr.com › ru › articles › 181758
Внутренняя работа плагина unobtrusive jQuery validate в ASP.Net MVC / Хабр
June 1, 2013 - Адаптеры отвечают за то, чтобы перевести Html «data-*» в формат, понятный обычному плагину jquery.validate. Если пользователь хочет добавить отдельный метод валидации с помощью ненавязчивой валидации, он должен также создать адаптер для нее. Коллекция адаптеров находится в $.validator.unobtrusive.adapters.
🌐
GitHub
github.com › aspnet › jquery-validation-unobtrusive
GitHub - aspnet/jquery-validation-unobtrusive: Add-on to jQuery Validation to enable unobtrusive validation options in data-* attributes. · GitHub
The jQuery Unobtrusive Validation library complements jQuery Validation by adding support for specifying validation options as HTML5 data-* elements.
Starred by 260 users
Forked by 109 users
Languages   JavaScript 72.4% | Batchfile 24.4% | PowerShell 3.2%
🌐
Nadeemkhedr
nadeemkhedr.com › 2012-08-27---how-the-unobtrusive-jquery-validate-plugin-works-internally-in-asp-net-mvc
How the unobtrusive jQuery validate plugin works internally in Asp.net MVC | Nadeem Khedr
August 27, 2012 - messages: The jquery messages array for this element, same as the rules object you are expected to fill it and its used as the messages object for this Html element in the validate method · There is no return result from the method. Whats happening manipulating the rules & messages arrays will directly be saved on the form itself using $.data(“unobtrusiveValidation") you can check the parseElement method for the details of how the parameter where passed to the adapter function
🌐
Nadeemkhedr
nadeemkhedr.com › 2013-08-05---adding-dynamic-elements-with-unobtrusive-jquery-validate-in-asp-net-mvc
Adding dynamic elements with unobtrusive jQuery validate in Asp.net-Mvc | Nadeem Khedr
August 5, 2013 - 2- Access the form’s unobtrusiveValidation data using the jquery data method · we can use $(form).data(‘unobtrusiveValidation’) and access the rules collection and add the new elements attributes (which is somewhat complicated)
🌐
Johnculviner
johnculviner.com › clearreset-mvc-3-form-and-unobtrusive-jquery-client-validation
Clear/Reset MVC 3 Form and Unobtrusive jQuery Client Validation – johnculviner.com
November 16, 2011 - (function ($) { //re-set all client validation given a jQuery selected form or child $.fn.resetValidation = function () { var $form = this.closest('form'); //reset jQuery Validate's internals $form.validate().resetForm(); //reset unobtrusive validation summary, if it exists $form.find("[data-valmsg-summary=true]") .removeClass("validation-summary-errors") .addClass("validation-summary-valid") .find("ul").empty(); //reset unobtrusive field level, if it exists $form.find("[data-valmsg-replace]") .removeClass("field-validation-error") .addClass("field-validation-valid") .empty(); return $form; };
Find elsewhere
🌐
Jqueryvalidation
jqueryvalidation.org › validate
.validate() | jQuery Validation Plugin
May 23, 2013 - Elements to ignore when validating, simply filtering them out. jQuery's not-method is used, therefore everything that is accepted by not() can be passed as this option.
🌐
Jqueryvalidation
jqueryvalidation.org › documentation
Documentation | jQuery Validation Plugin
That behaviour can be irritating when clicking through demos of the validation plugin – it is designed for an unobtrusive user experience, annoying the user as little as possible with unnecessary error messages. So when you try out other demos, try to react like one of your users would, and ...
🌐
Bootstrap
getbootstrap.com › docs › 5.3 › forms › validation
Validation · Bootstrap v5.3
For custom Bootstrap form validation messages, you’ll need to add the novalidate boolean attribute to your <form>. This disables the browser default feedback tooltips, but still provides access to the form validation APIs in JavaScript. Try to submit the form below; our JavaScript will intercept ...
🌐
RadenkoZec blog
radenkozec.com › home › how to enable unobtrusive client validation using jquery in asp.net 5
How to enable Unobtrusive Client Validation using JQuery in ASP.NET 5
August 8, 2018 - In previous versions of ASP.NET MVC we have enable unobtrusive client side validation using JQuery in simple way by adding two keys in AppSettings of your
🌐
johnnyreilly
johnnyreilly.com › home › blog › jquery validation - native unobtrusive validation support!
jQuery Validation - Native Unobtrusive Validation Support! | johnnyreilly
June 26, 2013 - Use HTML5 data attributes with jQuery Validation to simplify code and achieve validation unobtrusively. Ideal for dynamically added DOM elements.
🌐
Atdsjg
atdsjg.beer › ,u1b3aspz0ewminkgn311777.jsp
JQuery unobtrusive validation documentation
5 days ago - We cannot provide a description for this page right now
🌐
RadenkoZec blog
radenkozec.com › home › enable unobtrusive jquery validation on hidden input fields in asp.net mvc
Enable Unobtrusive JQuery Validation on Hidden Input Fields in ASP.NET MVC
August 16, 2018 - After release of JQuery Validation Plugin 1.9 hidden elements on form are ignored by default from validation. The problem is that you sometimes need a
🌐
GeeksforGeeks
geeksforgeeks.org › jquery › what-is-unobtrusive-validation-in-jquery
What is Unobtrusive Validation in jQuery? - GeeksforGeeks
July 23, 2020 - Unobtrusive Validation means without writing a lot of validation code, you can perform simple client-side validation by adding the suitable attributes and including the suitable script files.
🌐
Mattkruskamp
mattkruskamp.me › asp-net-jquery-unobtrusive-conditional-validation
Asp.net JQuery Unobtrusive Conditional Validation - Matt Kruskamp
January 1, 2012 - '' : targetvalue).toString(); // get the actual value of the target control // note - this probably needs to cater for more // control types, e.g. radios var control = $(id); var controltype = control.attr('type'); var actualvalue = controltype === 'checkbox' ? control.attr('checked').toString() : control.val(); // if the condition is true, reuse the existing // required field validator functionality if (targetvalue === actualvalue) return $.validator.methods.required.call( this, value, element, parameters); return true; } ); $.validator.unobtrusive.adapters.add( 'requiredif', ['dependentproperty', 'targetvalue'], function (options) { options.rules['requiredif'] = { dependentproperty: options.params['dependentproperty'], targetvalue: options.params['targetvalue'] }; options.messages['requiredif'] = options.message; });