35 lines
1.6 KiB
JavaScript
35 lines
1.6 KiB
JavaScript
// Adapted from: http://xhalent.wordpress.com/2011/01/24/applying-unobtrusive-validation-to-dynamic-content/
|
|
(function ($) {
|
|
$.validator.unobtrusive.reparse = function (selector) {
|
|
//use the normal unobstrusive.parse method
|
|
$.validator.unobtrusive.parse(selector);
|
|
|
|
//get the relevant form
|
|
var form = $(selector).first().closest('form');
|
|
|
|
//get the collections of unobstrusive validators, and jquery validators
|
|
//and compare the two
|
|
var unobtrusiveValidation = form.data('unobtrusiveValidation');
|
|
var validator = form.validate();
|
|
|
|
$.each(unobtrusiveValidation.options.rules, function (elname, elrules) {
|
|
if (validator.settings.rules[elname] == undefined) {
|
|
var args = {};
|
|
$.extend(args, elrules);
|
|
args.messages = unobtrusiveValidation.options.messages[elname];
|
|
//edit:use quoted strings for the name selector
|
|
$("[name='" + elname + "']").rules("add", args);
|
|
} else {
|
|
$.each(elrules, function (rulename, data) {
|
|
if (validator.settings.rules[elname][rulename] == undefined) {
|
|
var args = {};
|
|
args[rulename] = data;
|
|
args.messages = unobtrusiveValidation.options.messages[elname][rulename];
|
|
//edit:use quoted strings for the name selector
|
|
$("[name='" + elname + "']").rules("add", args);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
})($); |