Draft data collection of special eles

This commit is contained in:
Dennis Eichhorn 2019-01-20 12:04:08 +01:00
parent 2da43ee730
commit ba4dbf22ad

View File

@ -176,6 +176,7 @@
buttons = form.getElementsByTagName('button'), buttons = form.getElementsByTagName('button'),
canvas = form.getElementsByTagName('canvas'), canvas = form.getElementsByTagName('canvas'),
external = document.querySelectorAll('[form=' + this.id + ']'), external = document.querySelectorAll('[form=' + this.id + ']'),
special = document.querySelectorAll('[data-form=' + this.id + '] [data-name]'),
inputLength = inputs.length; inputLength = inputs.length;
// todo: handle trigger element. check which element triggered the submit and pass it's name+value // todo: handle trigger element. check which element triggered the submit and pass it's name+value
@ -196,7 +197,8 @@
Array.prototype.slice.call(selects), Array.prototype.slice.call(selects),
Array.prototype.slice.call(textareas), Array.prototype.slice.call(textareas),
Array.prototype.slice.call(buttons), Array.prototype.slice.call(buttons),
Array.prototype.slice.call(external) Array.prototype.slice.call(external),
Array.prototype.slice.call(special)
) )
); );
}; };
@ -238,10 +240,24 @@
if (elements[i].tagName.toLowerCase() === 'canvas') { if (elements[i].tagName.toLowerCase() === 'canvas') {
value = elements[i].toDataURL('image/png'); value = elements[i].toDataURL('image/png');
} else { } else {
value = elements[i].value; if (typeof elements[i].value !== 'undefined') {
value = elements[i].value;
} else if (typeof elements[i].getAttribute('data-value') !== 'undefined') {
value = elements[i].getAttribute('data-value');
}
} }
data[jsOMS.Views.FormView.getElementId(elements[i])] = value; // handle array data (e.g. table rows with same name)
const id = jsOMS.Views.FormView.getElementId(elements[i]);
if (data.hasOwnProperty(id)) {
if (!data[id].isArray()) {
data[id] = [data[id]];
}
data[id].push(value);
} else {
data[id] = value;
}
} }
return data; return data;
@ -309,21 +325,15 @@
*/ */
static getElementId (e) static getElementId (e)
{ {
let id = e.getAttribute('name'); if (typeof e.getAttribute('name') !== 'undefined') {
return e.getAttribute('name');
if (!id) { } else if (typeof e.getAttribute('id') !== 'undefined') {
id = e.getAttribute('id'); return e.getAttribute('id');
} else { } else if (typeof e.getAttribute('data-name') !== 'undefined') {
return id; return e.getAttribute('data-name');
} else if (typeof e.getAttribute('type') !== 'undefined') {
return e.getAttribute('type');
} }
if (!id) {
id = e.getAttribute('type');
} else {
return id;
}
return id;
}; };
/** /**
@ -344,6 +354,7 @@
* @return {void} * @return {void}
* *
* @since 1.0.0 * @since 1.0.0
* @todo: check bind functionality maybe remove!!!
*/ */
bind () bind ()
{ {
@ -386,6 +397,7 @@
* @return {void} * @return {void}
* *
* @since 1.0.0 * @since 1.0.0
* @todo: check unbind functionality maybe remove = everything!!!
*/ */
unbind () unbind ()
{ {