Support multiple select fields in form submissions #147
@@ -56,7 +56,7 @@
|
|||||||
<br />
|
<br />
|
||||||
|
|
||||||
<label for="get-form-select">Select list:</label>
|
<label for="get-form-select">Select list:</label>
|
||||||
<select name="select" id="get-form-select">
|
<select multiple name="select" id="get-form-select">
|
||||||
<option>
|
<option>
|
||||||
Option 1
|
Option 1
|
||||||
</option>
|
</option>
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
<br />
|
<br />
|
||||||
|
|
||||||
<label for="post-form-select">Select list:</label>
|
<label for="post-form-select">Select list:</label>
|
||||||
<select name="select" id="post-form-select">
|
<select multiple name="select" id="post-form-select">
|
||||||
<option>
|
<option>
|
||||||
Option 1
|
Option 1
|
||||||
</option>
|
</option>
|
||||||
|
|||||||
@@ -32,15 +32,40 @@ var formAction = function(el, event) {
|
|||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
for (var elementKey in el.elements) {
|
for (var elementKey in el.elements) {
|
||||||
|
if (Number.isNaN(Number(elementKey))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
var element = el.elements[elementKey]
|
var element = el.elements[elementKey]
|
||||||
|
var tagName = element.tagName.toLowerCase()
|
||||||
// jscs:disable disallowImplicitTypeConversion
|
// jscs:disable disallowImplicitTypeConversion
|
||||||
if (!!element.name && element.attributes !== undefined && element.tagName.toLowerCase() !== "button") {
|
if (!!element.name && element.attributes !== undefined && tagName !== "button") {
|
||||||
|
var type = element.attributes.type
|
||||||
// jscs:enable disallowImplicitTypeConversion
|
// jscs:enable disallowImplicitTypeConversion
|
||||||
if ((!element.attributes.type || element.attributes.type.value !== "checkbox" && element.attributes.type.value !== "radio") || element.checked) {
|
if ((!type || type.value !== "checkbox" && type.value !== "radio") || element.checked) {
|
||||||
options.requestOptions.requestParams.push({
|
// Build array of values to submit
|
||||||
name: encodeURIComponent(element.name),
|
var values = []
|
||||||
value: encodeURIComponent(element.value)
|
|
||||||
})
|
if (tagName === "select") {
|
||||||
|
var opt
|
||||||
|
|
||||||
|
for (var i = 0; i < element.options.length; i++) {
|
||||||
|
opt = element.options[i]
|
||||||
|
if (opt.selected) {
|
||||||
|
values.push(opt.value || opt.text)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
values.push(element.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var j = 0; j < values.length; j++) {
|
||||||
|
options.requestOptions.requestParams.push({
|
||||||
|
name: encodeURIComponent(element.name),
|
||||||
|
value: encodeURIComponent(values[j])
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user