1
0
Fork 0
mirror of synced 2024-09-07 05:11:08 +12:00
appwrite/public/scripts/views/forms/duplications.js

40 lines
1 KiB
JavaScript
Raw Normal View History

2021-08-09 03:57:26 +12:00
(function (window) {
"use strict";
window.ls.container.get("view").add({
selector: "data-duplications",
2021-08-09 19:08:49 +12:00
controller: function (element) {
let validate = function (element) {
2021-08-09 03:57:26 +12:00
let duplication = 0;
2021-08-09 19:08:49 +12:00
let form = element.form;
2021-08-09 03:57:26 +12:00
for (let i = 0; i < form.elements.length; i++) {
let field = form.elements[i];
2021-08-09 19:08:49 +12:00
if(field.name === element.name && field.value === element.value) {
2021-08-09 03:57:26 +12:00
duplication++;
}
}
if(duplication > 1) { // self + another element with same name and value
2021-08-09 19:08:49 +12:00
element.setCustomValidity("Duplicated value");
2021-08-09 03:57:26 +12:00
}
else {
2021-08-09 19:08:49 +12:00
element.setCustomValidity("");
2021-08-09 03:57:26 +12:00
}
2021-08-09 19:08:49 +12:00
};
element.addEventListener('change', function(event) {
validate(event.target)
});
element.addEventListener('focus', function(event) {
validate(event.target)
});
element.addEventListener('blur', function(event) {
validate(event.target)
2021-08-09 03:57:26 +12:00
});
}
});
})(window);