Files
globelus.pl/plugins/jquery-validation/polish/validator.range-checked.js
2024-11-11 15:28:20 +01:00

55 lines
1.5 KiB
JavaScript

/* eslint-disable func-names */
/* Range checked validation */
/* Need attr data-js-validation-min-checked
and data-js-validation-max-checked */
jQuery.validator.addClassRules("js-validation-range-checked", {
range_checked: true,
});
/* Range checked validator */
let rangeChecked;
function rangeCheckedMsg() {
if (parseInt(rangeChecked[1], 10) === 1) {
return `Proszę zaznaczyć od ${rangeChecked[0]} do ${rangeChecked[1]} pola.`;
}
return `Proszę zaznaczyć od ${rangeChecked[0]} do ${rangeChecked[1]} pól.`;
}
jQuery.validator.addMethod(
"range_checked",
function(value, element) {
let min = 0;
let max = 0;
const el = jQuery(element);
const form = jQuery(element).closest("form");
let name;
let count = 0;
const attr = el.attr("data-js-validation-min-checked");
const attr2 = el.attr("data-js-validation-max-checked");
if (
typeof attr !== typeof undefined &&
attr !== false &&
typeof attr2 !== typeof undefined &&
attr2 !== false
) {
min = attr;
max = attr2;
rangeChecked = [];
rangeChecked[0] = min;
rangeChecked[1] = max;
name = el.attr("name");
count = jQuery(form).find(`input[name="${name}"]:checkbox:checked`)
.length;
if (count >= min && count <= max) {
return this.optional(element) || true;
}
return this.optional(element) || false;
}
return this.optional(element) || true;
},
rangeCheckedMsg
);