fix w formularzu
This commit is contained in:
43
static/js/przelaczniki_zabezpieczenie.js
Normal file
43
static/js/przelaczniki_zabezpieczenie.js
Normal file
@@ -0,0 +1,43 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
function ready(fn) {
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', fn);
|
||||
} else {
|
||||
fn();
|
||||
}
|
||||
}
|
||||
|
||||
ready(function () {
|
||||
var boxes = Array.prototype.slice.call(
|
||||
document.querySelectorAll('input.form-check-input[type="checkbox"][data-group="postepy"]')
|
||||
);
|
||||
if (!boxes.length) return;
|
||||
|
||||
function atLeastOneChecked() {
|
||||
return boxes.some(function (b) { return b.checked; });
|
||||
}
|
||||
|
||||
// Blokuj odznaczenie ostatniego włączonego
|
||||
boxes.forEach(function (box) {
|
||||
box.addEventListener('change', function () {
|
||||
if (!atLeastOneChecked()) {
|
||||
box.checked = true;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Walidacja przy submit
|
||||
var form = boxes[0].closest('form');
|
||||
if (form) {
|
||||
form.addEventListener('submit', function (e) {
|
||||
if (!atLeastOneChecked()) {
|
||||
e.preventDefault();
|
||||
// Możesz podmienić na toast/flash wg własnego UI
|
||||
alert('Co najmniej jeden wskaźnik postępu musi być włączony.');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
})();
|
Reference in New Issue
Block a user