Add the option to use FormData to encode the form elements

If the form's enctype attribute is set to "multipart/form-data",
use FormData to encode the form's elements.
This commit is contained in:
Behind The Math
2018-04-18 09:58:12 -04:00
parent 7d26a75fdf
commit 8c8787bac5
3 changed files with 51 additions and 5 deletions

View File

@@ -31,6 +31,22 @@ var formAction = function(el, event) {
event.preventDefault()
if (el.enctype === "multipart/form-data") {
options.requestOptions.formData = new FormData(el)
}
else {
options.requestOptions.requestParams = parseFormElements(el)
}
el.setAttribute(attrState, "submit")
options.triggerElement = el
this.loadUrl(virtLinkElement.href, options)
}
function parseFormElements(el) {
var requestParams = []
for (var elementKey in el.elements) {
if (Number.isNaN(Number(elementKey))) {
continue;
@@ -62,7 +78,7 @@ var formAction = function(el, event) {
}
for (var j = 0; j < values.length; j++) {
options.requestOptions.requestParams.push({
requestParams.push({
name: encodeURIComponent(element.name),
value: encodeURIComponent(values[j])
})
@@ -71,10 +87,7 @@ var formAction = function(el, event) {
}
}
el.setAttribute(attrState, "submit")
options.triggerElement = el
this.loadUrl(virtLinkElement.href, options)
return requestParams
}
function checkIfShouldAbort(virtLinkElement, options) {