@t7/utils
Version:
Utility methods for T7 components.
71 lines (49 loc) • 1.59 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _ = require("./");
/*
Parses all inputs in a `<form>`,
and returns a formatted object.
*/
// Dependencies.
var parseFormData = function parseFormData(form) {
// Array method.
var f = Array.prototype.map; // Build selector.
var str = ['[contenteditable="true"]', 'input', 'select', 'textarea'].join(','); // Get elements.
var list = form.querySelectorAll(str); // Build in a loop.
var data = []; // Loop through.
f.call(list, function (el) {
// Exit if disabled.
if (el.disabled || el.hasAttribute('disabled')) {
return;
} // Get attributes.
var name = el.getAttribute('name');
var type = el.getAttribute('type');
var isTextdiv = el.getAttribute('contenteditable'); // Set in conditional.
var value; // If it's a <Textdiv>, treat differently.
if (isTextdiv) {
// Get placeholder.
var placeholder = el.getAttribute('placeholder'); // Get value.
value = (0, _.contentToText)(el.innerHTML); // Ensure value isn't placeholder.
if (value === placeholder) {
value = '';
} // Else, typical form element.
} else {
value = el.value;
}
var item = {
name: name,
value: value // Pass `checked`?
};
if (type === 'radio' || type === 'checkbox') {
item.checked = el.checked;
} // Add to data.
data.push(item);
}); // Send back object.
return data;
}; // Expose function.
var _default = parseFormData;
exports.default = _default;
;