diff --git a/core/assets/vendor/jquery-form/jquery.form.js b/core/assets/vendor/jquery-form/jquery.form.js index 8ca137af697be8a8de38d8e3c280ac1f8085c546..92e0e1ff10d01d76923633b3b8e06d31d732db08 100644 --- a/core/assets/vendor/jquery-form/jquery.form.js +++ b/core/assets/vendor/jquery-form/jquery.form.js @@ -1,7 +1,7 @@ /*! * jQuery Form Plugin - * version: 3.39.0-2013.07.31 - * @requires jQuery v1.5 or later + * version: 3.50.0-2014.02.05 + * Requires jQuery v1.5 or later * Copyright (c) 2013 M. Alsup * Examples and documentation at: http://malsup.com/jquery/form/ * Project repository: https://github.com/malsup/form @@ -9,7 +9,20 @@ * https://github.com/malsup/form#copyright-and-license */ /*global ActiveXObject */ -;(function($) { + +// AMD support +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + // using AMD; register as anon module + define(['jquery'], factory); + } else { + // no AMD; invoke directly + factory( (typeof(jQuery) != 'undefined') ? jQuery : window.Zepto ); + } +} + +(function($) { "use strict"; /* @@ -63,11 +76,13 @@ var hasProp = !!$.fn.prop; // contains inputs with names like "action" or "method"; in those // cases "prop" returns the element $.fn.attr2 = function() { - if ( ! hasProp ) + if ( ! hasProp ) { return this.attr.apply(this, arguments); + } var val = this.prop.apply(this, arguments); - if ( ( val && val.jquery ) || typeof val === 'string' ) + if ( ( val && val.jquery ) || typeof val === 'string' ) { return val; + } return this.attr.apply(this, arguments); }; @@ -209,7 +224,7 @@ $.fn.ajaxSubmit = function(options) { // [value] (issue #113), also see comment: // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219 - var fileInputs = $('input[type=file]:enabled:not([value=""])', this); + var fileInputs = $('input[type=file]:enabled', this).filter(function() { return $(this).val() !== ''; }); var hasFileInputs = fileInputs.length > 0; var mp = 'multipart/form-data'; @@ -245,8 +260,9 @@ $.fn.ajaxSubmit = function(options) { $form.removeData('jqxhr').data('jqxhr', jqxhr); // clear element array - for (var k=0; k < elements.length; k++) + for (var k=0; k < elements.length; k++) { elements[k] = null; + } // fire 'notify' event this.trigger('form-submit-notify', [this, options]); @@ -278,9 +294,11 @@ $.fn.ajaxSubmit = function(options) { if (options.extraData) { var serializedData = deepSerialize(options.extraData); - for (i=0; i < serializedData.length; i++) - if (serializedData[i]) + for (i=0; i < serializedData.length; i++) { + if (serializedData[i]) { formdata.append(serializedData[i][0], serializedData[i][1]); + } + } } options.data = null; @@ -312,11 +330,18 @@ $.fn.ajaxSubmit = function(options) { } s.data = null; - var beforeSend = s.beforeSend; - s.beforeSend = function(xhr, o) { + var beforeSend = s.beforeSend; + s.beforeSend = function(xhr, o) { + //Send FormData() provided by user + if (options.formData) { + o.data = options.formData; + } + else { o.data = formdata; - if(beforeSend) - beforeSend.call(this, xhr, o); + } + if(beforeSend) { + beforeSend.call(this, xhr, o); + } }; return $.ajax(s); } @@ -335,10 +360,12 @@ $.fn.ajaxSubmit = function(options) { // ensure that every serialized input is still enabled for (i=0; i < elements.length; i++) { el = $(elements[i]); - if ( hasProp ) + if ( hasProp ) { el.prop('disabled', false); - else + } + else { el.removeAttr('disabled'); + } } } @@ -348,10 +375,12 @@ $.fn.ajaxSubmit = function(options) { if (s.iframeTarget) { $io = $(s.iframeTarget); n = $io.attr2('name'); - if (!n) - $io.attr2('name', id); - else + if (!n) { + $io.attr2('name', id); + } + else { id = n; + } } else { $io = $('