PageSourceSearch

https://www.psegliny.com/scripts/CliScripts/common/jquery.validate.unobtrusive.js

js psegliny.com collected 2026-10-02 06:49:39 UTC 6,641 bytes, 8 lines download raw bytes

1/**
2 * @license
3 * Unobtrusive validation support library for jQuery and jQuery Validate
4 * Copyright (c) .NET Foundation. All rights reserved.
5 * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
6 * @version <placeholder>
7 */
8(function (n) { typeof define == "function" && define.amd ? define("jquery.validate.unobtrusive", ["jquery-validation"], n) : typeof module == "object" && module.exports ? module.exports = n(require("jquery-validation")) : jQuery.validator.unobtrusive = n(jQuery) })(function (n) { function i(n, t, i) { n.rules[t] = i; n.message && (n.messages[t] = n.message) } function h(n) { return n.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g) } function f(n) { return n.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1") } function e(n) { return n.substr(0, n.lastIndexOf(".") + 1) } function o(n, t) { return n.indexOf("*.") === 0 && (n = n.replace("*.", t)), n } function c(t, i) { var r = n(this).find("[data-valmsg-for='" + f(i[0].name) + "']"), u = r.attr("data-valmsg-replace"), e = u ? n.parseJSON(u) !== !1 : null; r.removeClass("field-validation-valid").addClass("field-validation-error"); t.data("unobtrusiveContainer", r); e ? (r.empty(), t.removeClass("input-validation-error").appendTo(r)) : t.hide() } function l(t, i) { var u = n(this).find("[data-valmsg-summary=true]"), r = u.find("ul"); r && r.length && i.errorList.length && (r.empty(), u.addClass("validation-summary-errors").removeClass("validation-summary-valid"), n.each(i.errorList, function () { n("<li />").html(this.message).appendTo(r) })) } function a(t) { var i = t.data("unobtrusiveContainer"), r, u; i && (r = i.attr("data-valmsg-replace"), u = r ? n.parseJSON(r) : null, i.addClass("field-validation-valid").removeClass("field-validation-error"), t.removeData("unobtrusiveContainer"), u && i.empty()) } function v() { var t = n(this), i = "__jquery_unobtrusive_validation_form_reset"; if (!t.data(i)) { t.data(i, !0); try { t.data("validator").resetForm() } finally { t.removeData(i) } t.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"); t.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer") } } function s(t) { var i = n(t), f = i.data(u), s = n.proxy(v, t), e = r.unobtrusive.options || {}, o = function (i, r) { var u = e[i]; u && n.isFunction(u) && u.apply(t, r) }; return f || (f = { options: { errorClass: e.errorClass || "input-validation-error", errorElement: e.errorElement || "span", errorPlacement: function () { c.apply(t, arguments); o("errorPlacement", arguments) }, invalidHandler: function () { l.apply(t, arguments); o("invalidHandler", arguments) }, messages: {}, rules: {}, success: function () { a.apply(t, arguments); o("success", arguments) } }, attachValidation: function () { i.off("reset." + u, s).on("reset." + u, s).validate(this.options) }, validate: function () { return i.validate(), i.valid() } }, i.data(u, f)), f } var r = n.validator, t, u = "unobtrusiveValidation"; return r.unobtrusive = { adapters: [], parseElement: function (t, i) { var u = n(t), f = u.parents("form")[0], r, e, o; f && (r = s(f), r.options.rules[t.name] = e = {}, r.options.messages[t.name] = o = {}, n.each(this.adapters, function () { var i = "data-val-" + this.name, r = u.attr(i), s = {}; r !== undefined && (i += "-", n.each(this.params, function () { s[this] = u.attr(i + this) }), this.adapt({ element: t, form: f, message: r, params: s, rules: e, messages: o })) }), n.extend(e, { __dummy__: !0 }), i || r.attachValidation()) }, parse: function (t) { var i = n(t), u = i.parents().addBack().filter("form").add(i.find("form")).has("[data-val=true]"); i.find("[data-val=true]").each(function () { r.unobtrusive.parseElement(this, !0) }); u.each(function () { var n = s(this); n && n.attachValidation() }) } }, t = r.unobtrusive.adapters, t.add = function (n, t, i) { return i || (i = t, t = []), this.push({ name: n, params: t, adapt: i }), this }, t.addBool = function (n, t) { return this.add(n, function (r) { i(r, t || n, !0) }) }, t.addMinMax = function (n, t, r, u, f, e) { return this.add(n, [f || "min", e || "max"], function (n) { var f = n.params.min, e = n.params.max; f && e ? i(n, u, [f, e]) : f ? i(n, t, f) : e && i(n, r, e) }) }, t.addSingleVal = function (n, t, r) { return this.add(n, [t || "val"], function (u) { i(u, r || n, u.params[t]) }) }, r.addMethod("__dummy__", function () { return !0 }), r.addMethod("regex", function (n, t, i) { var r; return this.optional(t) ? !0 : (r = new RegExp(i).exec(n), r && r.index === 0 && r[0].length === n.length) }), r.addMethod("nonalphamin", function (n, t, i) { var r; return i && (r = n.match(/\W/g), r = r && r.length >= i), r }), r.methods.extension ? (t.addSingleVal("accept", "mimtype"), t.addSingleVal("extension", "extension")) : t.addSingleVal("extension", "extension", "accept"), t.addSingleVal("regex", "pattern"), t.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"), t.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range"), t.addMinMax("minlength", "minlength").addMinMax("maxlength", "minlength", "maxlength"), t.add("equalto", ["other"], function (t) { var r = e(t.element.name), u = t.params.other, s = o(u, r), h = n(t.form).find(":input").filter("[name='" + f(s) + "']")[0]; i(t, "equalTo", h) }), t.add("required", function (n) { (n.element.tagName.toUpperCase() !== "INPUT" || n.element.type.toUpperCase() !== "CHECKBOX") && i(n, "required", !0) }), t.add("remote", ["url", "type", "additionalfields"], function (t) { var r = { url: t.params.url, type: t.params.type || "GET", data: {} }, u = e(t.element.name); n.each(h(t.params.additionalfields || t.element.name), function (i, e) { var s = o(e, u); r.data[s] = function () { var i = n(t.form).find(":input").filter("[name='" + f(s) + "']"); return i.is(":checkbox") ? i.filter(":checked").val() || i.filter(":hidden").val() || "" : i.is(":radio") ? i.filter(":checked").val() || "" : i.val() } }); i(t, "remote", r) }), t.add("password", ["min", "nonalphamin", "regex"], function (n) { n.params.min && i(n, "minlength", n.params.min); n.params.nonalphamin && i(n, "nonalphamin", n.params.nonalphamin); n.params.regex && i(n, "regex", n.params.regex) }), t.add("fileextensions", ["extensions"], function (n) { i(n, "extension", n.params.extensions) }), n(function () { r.unobtrusive.parse(document) }), r.unobtrusive });

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.