clean inputs javascript
This commit is contained in:
parent
b84032d0b9
commit
44684f3998
@ -3,37 +3,37 @@
|
|||||||
|
|
||||||
window.utils = window.utils || {};
|
window.utils = window.utils || {};
|
||||||
|
|
||||||
var JS_INITIALIZED_CLASS = 'js-initialized';
|
var JS_INITIALIZED_CLASS = 'js-inputs-initialized';
|
||||||
|
|
||||||
function isNotInitialized(element) {
|
|
||||||
return !element.classList.contains(JS_INITIALIZED_CLASS);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.utils.inputs = function(wrapper, options) {
|
window.utils.inputs = function(wrapper, options) {
|
||||||
|
options = options || {};
|
||||||
var utilInstances = [];
|
var utilInstances = [];
|
||||||
|
|
||||||
|
if (wrapper.classList.contains(JS_INITIALIZED_CLASS) && !options.force) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// checkboxes
|
// checkboxes
|
||||||
var checkboxes = Array.from(wrapper.querySelectorAll('input[type="checkbox"]'));
|
var checkboxes = Array.from(wrapper.querySelectorAll('input[type="checkbox"]'));
|
||||||
checkboxes.filter(isNotInitialized).forEach(function(checkbox) {
|
checkboxes.forEach(function(checkbox) {
|
||||||
utilInstances.push(window.utils.setup('checkbox', checkbox));
|
utilInstances.push(window.utils.setup('checkbox', checkbox));
|
||||||
});
|
});
|
||||||
|
|
||||||
// radios
|
// radios
|
||||||
var radios = Array.from(wrapper.querySelectorAll('input[type="radio"]'));
|
var radios = Array.from(wrapper.querySelectorAll('input[type="radio"]'));
|
||||||
radios.filter(isNotInitialized).forEach(function(radio) {
|
radios.forEach(function(radio) {
|
||||||
utilInstances.push(window.utils.setup('radio', radio));
|
utilInstances.push(window.utils.setup('radio', radio));
|
||||||
});
|
});
|
||||||
|
|
||||||
// file-uploads
|
// file-uploads
|
||||||
var fileUploads = Array.from(wrapper.querySelectorAll('input[type="file"]'));
|
var fileUploads = Array.from(wrapper.querySelectorAll('input[type="file"]'));
|
||||||
fileUploads.filter(isNotInitialized).forEach(function(input) {
|
fileUploads.forEach(function(input) {
|
||||||
utilInstances.push(window.utils.setup('fileUpload', input, options));
|
utilInstances.push(window.utils.setup('fileUpload', input, options));
|
||||||
});
|
});
|
||||||
|
|
||||||
// file-checkboxes
|
// file-checkboxes
|
||||||
var fileCheckboxes = Array.from(wrapper.querySelectorAll('.file-checkbox'));
|
var fileCheckboxes = Array.from(wrapper.querySelectorAll('.file-checkbox'));
|
||||||
fileCheckboxes.filter(isNotInitialized).forEach(function(input) {
|
fileCheckboxes.forEach(function(input) {
|
||||||
utilInstances.push(window.utils.setup('fileCheckbox', input, options));
|
utilInstances.push(window.utils.setup('fileCheckbox', input, options));
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -45,6 +45,8 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wrapper.classList.add(JS_INITIALIZED_CLASS);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
scope: wrapper,
|
scope: wrapper,
|
||||||
destroy: destroyUtils,
|
destroy: destroyUtils,
|
||||||
@ -74,7 +76,6 @@
|
|||||||
if (!i18n) {
|
if (!i18n) {
|
||||||
throw new Error('window.utils.fileUpload(input, options) needs to be passed i18n object via options');
|
throw new Error('window.utils.fileUpload(input, options) needs to be passed i18n object via options');
|
||||||
}
|
}
|
||||||
input.classList.add(JS_INITIALIZED_CLASS);
|
|
||||||
|
|
||||||
function renderFileList(files) {
|
function renderFileList(files) {
|
||||||
fileList.innerHTML = '';
|
fileList.innerHTML = '';
|
||||||
@ -166,8 +167,6 @@
|
|||||||
cont = cont.parentNode;
|
cont = cont.parentNode;
|
||||||
}
|
}
|
||||||
addListener(cont);
|
addListener(cont);
|
||||||
input.classList.add(JS_INITIALIZED_CLASS);
|
|
||||||
cont.classList.add(JS_INITIALIZED_CLASS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setup();
|
setup();
|
||||||
@ -190,7 +189,6 @@
|
|||||||
labelEl.setAttribute('for', input.id);
|
labelEl.setAttribute('for', input.id);
|
||||||
wrapperEl.appendChild(input);
|
wrapperEl.appendChild(input);
|
||||||
wrapperEl.appendChild(labelEl);
|
wrapperEl.appendChild(labelEl);
|
||||||
input.classList.add(JS_INITIALIZED_CLASS);
|
|
||||||
|
|
||||||
if (siblingEl) {
|
if (siblingEl) {
|
||||||
parentEl.insertBefore(wrapperEl, siblingEl);
|
parentEl.insertBefore(wrapperEl, siblingEl);
|
||||||
@ -219,7 +217,6 @@
|
|||||||
wrapperEl.appendChild(siblingEl);
|
wrapperEl.appendChild(siblingEl);
|
||||||
}
|
}
|
||||||
|
|
||||||
input.classList.add(JS_INITIALIZED_CLASS);
|
|
||||||
parentEl.appendChild(wrapperEl);
|
parentEl.appendChild(wrapperEl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,8 +230,6 @@
|
|||||||
window.utils.implicitSubmit = function(input, options) {
|
window.utils.implicitSubmit = function(input, options) {
|
||||||
var submit = options.submit;
|
var submit = options.submit;
|
||||||
|
|
||||||
console.log('implicitSubmit', input, submit);
|
|
||||||
|
|
||||||
if (!submit) {
|
if (!submit) {
|
||||||
throw new Error('window.utils.implicitSubmit(input, options) needs to be passed a submit element via options');
|
throw new Error('window.utils.implicitSubmit(input, options) needs to be passed a submit element via options');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user