Skip to content
Extraits de code Groupes Projets
Valider 11f8d886 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

jQuery.form.js en version 4.3.0

parent 69d87dec
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
/*!
* jQuery Form Plugin
* version: 4.2.2
* version: 4.3.0
* Requires jQuery v1.7.2 or later
* Project repository: https://github.com/jquery-form/form
......@@ -136,7 +136,7 @@
}
/* eslint consistent-this: ["error", "$form"] */
var method, action, url, $form = this;
var method, action, url, isMsie, iframeSrc, $form = this;
if (typeof options === 'function') {
options = {success: options};
......@@ -159,18 +159,22 @@
method = options.method || options.type || this.attr2('method');
action = options.url || this.attr2('action');
url = (typeof action === 'string') ? action.trim() : '';
url = (typeof action === 'string') ? $.trim(action) : '';
url = url || window.location.href || '';
if (url) {
// clean url (don't include hash vaue)
url = (url.match(/^([^#]+)/) || [])[1];
}
// IE requires javascript:false in https, but this breaks chrome >83 and goes against spec.
// Instead of using javascript:false always, let's only apply it for IE.
isMsie = /(MSIE|Trident)/.test(navigator.userAgent || '');
iframeSrc = (isMsie && /^https/i.test(window.location.href || '')) ? 'javascript:false' : 'about:blank'; // eslint-disable-line no-script-url
options = $.extend(true, {
url : url,
success : $.ajaxSettings.success,
type : method || $.ajaxSettings.type,
iframeSrc : /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' // eslint-disable-line no-script-url
iframeSrc : iframeSrc
}, options);
// hook for manipulating the form data before it is extracted;
......@@ -665,12 +669,12 @@
// if using the $.param format that allows for multiple values with the same name
if ($.isPlainObject(s.extraData[n]) && s.extraData[n].hasOwnProperty('name') && s.extraData[n].hasOwnProperty('value')) {
extraInputs.push(
$('<input type="hidden" name="' + s.extraData[n].name + '">', ownerDocument).val(s.extraData[n].value)
.appendTo(form)[0]);
$('<input type="hidden" name="' + s.extraData[n].name + '">', ownerDocument).val(s.extraData[n].value)
.appendTo(form)[0]);
} else {
extraInputs.push(
$('<input type="hidden" name="' + n + '">', ownerDocument).val(s.extraData[n])
.appendTo(form)[0]);
$('<input type="hidden" name="' + n + '">', ownerDocument).val(s.extraData[n])
.appendTo(form)[0]);
}
}
}
......@@ -736,7 +740,8 @@
return;
} else if (e === SERVER_ABORT && xhr) {
}
if (e === SERVER_ABORT && xhr) {
xhr.abort('server abort');
deferred.reject(xhr, 'error', 'server abort');
......@@ -1011,6 +1016,10 @@
return this;
}
if (options.beforeFormUnbind) {
options.beforeFormUnbind(this, options);
}
return this.ajaxFormUnbind()
.on('submit.form-plugin', options, doAjaxSubmit)
.on('click.form-plugin', options, captureSubmittingElement);
......@@ -1405,7 +1414,7 @@
switch (tag) {
case 'input':
this.checked = this.defaultChecked;
// fall through
// fall through
case 'textarea':
this.value = this.defaultValue;
......@@ -1453,8 +1462,8 @@
return true;
case 'form':
// guard against an input with the name of 'reset'
// note that IE reports the reset function as an 'object'
// guard against an input with the name of 'reset'
// note that IE reports the reset function as an 'object'
if (typeof this.reset === 'function' || (typeof this.reset === 'object' && !this.reset.nodeType)) {
this.reset();
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter