Form Unobtrusive Validation Sketch
Form Unobtrusive Validation Sketch: free step-by-step lesson with examples, common mistakes, and interview tips — part of jQuery Tutorial on Toolliyo Academy.
On this page
jQuery Tutorial · Lesson 74 of 100
Form Unobtrusive Validation Sketch
Setup & DOM ✓ → Events Effects AJAX ✓ → Perf & Integrate → Ship & Projects
Perf & Integrate · 3 — Harden · ~10 min · App Integration
What is this?
ASP.NET unobtrusive validation uses data-val-* attributes and jQuery Validate. Sketch: ensure jquery → jquery.validate → jquery.validate.unobtrusive, then let submit be blocked on invalid fields.
Why should you care?
QueryVerse create forms on Core often already emit data-val attributes from DataAnnotations.
See it live — copy this example
Examples include the jQuery 3.7 CDN. Paste into an HTML file or use Run Example to preview.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>QueryVerse</title>
<style>
body { font-family: system-ui, sans-serif; margin: 1.25rem; }
.box { padding: .75rem; border: 1px solid #ccc; border-radius: 8px; margin: .5rem 0; }
.muted { color: #666; }
button { margin-right: .35rem; margin-top: .35rem; }
input, select, textarea { margin: .25rem 0; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ddd; padding: .4rem .55rem; text-align: left; }
.hidden { display: none; }
.row-odd { background: #f7f7f7; }
.active { font-weight: 700; }
.toast { background: #111; color: #fff; padding: .5rem .75rem; border-radius: 6px; }
</style>
</head>
<body>
<form id="f" class="box">
<input id="email" name="email" data-val="true" data-val-required="Email required" data-val-email="Invalid email">
<span class="field-validation-valid" data-valmsg-for="email"></span>
<button type="submit">Submit</button>
</form>
<p id="out" class="muted">Sketch only — validate plugin not loaded here</p>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
$(function () {
$('#f').on('submit', function (e) {
e.preventDefault();
var v = $('#email').val().trim();
var ok = /.+@.+\..+/.test(v);
$('[data-valmsg-for="email"]').text(ok ? '' : ($('#email').data('val-email') || 'Invalid'));
$('#out').text(ok ? 'Would submit (unobtrusive would allow)' : 'Blocked — mimics validate');
});
});
</script>
</body>
</html>
Run Example »
Edit the code below and click Run to see the result in Toolliyo’s live editor.
What happened?
- Real apps load the validate scripts from lib.
- After AJAX partials, call $.validator.unobtrusive.parse(form).
- Do not fight the plugin with parallel ad-hoc alerts.
Practice next
- Submit empty/invalid and see message.
- Submit a valid email.
- Note data-val attributes in the DOM.
- Add data-val-length rules in Razor.
- Style .input-validation-error.
Remember
data-val drives unobtrusive. Script order matters. parse dynamic forms.
Razor create form
A Urban Company partner QueryVerse “Add pro” form uses DataAnnotations + unobtrusive.
Outcome: You know the script order and the parse habit for AJAX forms.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!