You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12 lines
19 KiB
Plaintext

11 months ago
/*!
* jQuery Form Plugin
* version: 4.2.1
* Requires jQuery v1.7 or later
* Copyright 2017 Kevin Morris
* Copyright 2006 M. Alsup
* Project repository: https://github.com/jquery-form/form
* Dual licensed under the MIT and LGPLv3 licenses.
* https://github.com/jquery-form/form#license
*/
!function (a) { "function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = function (b, c) { return void 0 === c && (c = "undefined" != typeof window ? require("jquery") : require("jquery")(b)), a(c), c } : a(jQuery) }(function (a) { "use strict"; function b(b) { var c = b.data; b.isDefaultPrevented() || (b.preventDefault(), a(b.target).closest("form").ajaxSubmit(c)) } function c(b) { var c = b.target, d = a(c); if (!d.is("[type=submit],[type=image]")) { var e = d.closest("[type=submit]"); if (0 === e.length) return; c = e[0] } var f = c.form; if (f.clk = c, "image" === c.type) if (void 0 !== b.offsetX) f.clk_x = b.offsetX, f.clk_y = b.offsetY; else if ("function" == typeof a.fn.offset) { var g = d.offset(); f.clk_x = b.pageX - g.left, f.clk_y = b.pageY - g.top } else f.clk_x = b.pageX - c.offsetLeft, f.clk_y = b.pageY - c.offsetTop; setTimeoutGener(function () { f.clk = f.clk_x = f.clk_y = null }, 100) } function d() { if (a.fn.ajaxSubmit.debug) { var b = "[jquery.form] " + Array.prototype.join.call(arguments, ""); window.console && window.console.log ? window.console.log(b) : window.opera && window.opera.postError && window.opera.postError(b) } } var e = {}; e.fileapi = void 0 !== a('<input type="file">').get(0).files, e.formdata = void 0 !== window.FormData; var f = !!a.fn.prop; a.fn.attr2 = function () { if (!f) return this.attr.apply(this, arguments); var a = this.prop.apply(this, arguments); return a && a.jquery || "string" == typeof a ? a : this.attr.apply(this, arguments) }, a.fn.ajaxSubmit = function (b, c, g, h) { function i(c) { var d, e, f = a.param(c, b.traditional).split("&"), g = f.length, h = []; for (d = 0; d < g; d++)f[d] = f[d].replace(/\+/g, " "), e = f[d].split("="), h.push([decodeURIComponent(e[0]), decodeURIComponent(e[1])]); return h } function j(c) { for (var d = new FormData, e = 0; e < c.length; e++)d.append(c[e].name, c[e].value); if (b.extraData) { var f = i(b.extraData); for (e = 0; e < f.length; e++)f[e] && d.append(f[e][0], f[e][1]) } b.data = null; var g = a.extend(!0, {}, a.ajaxSettings, b, { contentType: !1, processData: !1, cache: !1, type: l || "POST" }); b.uploadProgress && (g.xhr = function () { var c = a.ajaxSettings.xhr(); return c.upload && c.upload.addEventListener("progress", function (a) { var c = 0, d = a.loaded || a.position, e = a.total; a.lengthComputable && (c = Math.ceil(d / e * 100)), b.uploadProgress(a, d, e, c) }, !1), c }), g.data = null; var h = g.beforeSend; return g.beforeSend = function (a, c) { b.formData ? c.data = b.formData : c.data = d, h && h.call(this, a, c) }, a.ajax(g) } function k(c) { function e(a) { var b = null; try { a.contentWindow && (b = a.contentWindow.document) } catch (a) { d("cannot get iframe.contentWindow document: " + a) } if (b) return b; try { b = a.contentDocument ? a.contentDocument : a.document } catch (c) { d("cannot get iframe.contentDocument: " + c), b = a.document } return b } function g() { function b() { try { var a = e(q).readyState; d("state = " + a), a && "uninitialized" === a.toLowerCase() && setTimeoutGener(b, 50) } catch (a) { d("Server abort: ", a, " (", a.name, ")"), h(2), w && clearTimeout(w), w = void 0 } } var c = o.attr2("target"), f = o.attr2("action"), g = o.attr("enctype") || o.attr("encoding") || "multipart/form-data"; x.setAttribute("target", n), l && !/post/i.test(l) || x.setAttribute("method", "POST"), f !== k.url && x.setAttribute("action", k.url), k.skipEncodingOverride || l && !/post/i.test(l) || o.attr({ encoding: "multipart/form-data", enctype: "multipart/form-data" }), k.timeout && (w = setTimeoutGener(function () { v = !0, h(1) }, k.timeout)); var i = []; try { if (k.extraData) for (var j in k.extraData) k.extraData.hasOwnProperty(j) && (a.isPlainObject(k.extraData[j]) && k.extraData[j].hasOwnProperty("name") && k.extraData[j].hasOwnProperty("value") ? i.push(a('<input type="hidden" name="' + k.extraData[j].name + '">', z).val(k.extraData[j].value).appendTo(x)[0]) : i.push(a('<input type="hidden" name="' + j + '">', z).val(k.extraD