Files
predavanja/MVC-SimpleCRUD-Layered/MVC-SimpleCRUD-Layered.Web/wwwroot/js/pager.js
Boris Milašinović 1415005b82 MVC (layered variant)
2026-04-26 13:40:03 +02:00

49 lines
1.2 KiB
JavaScript

(function () {
function validRange(value, min, max) {
if (!/^\d+$/.test(value)) {
return false;
}
var page = parseInt(value, 10);
return page >= min && page <= max;
}
function goToPage(input) {
var value = input.value.trim();
var min = parseInt(input.dataset.min, 10);
var max = parseInt(input.dataset.max, 10);
if (!validRange(value, min, max)) {
input.value = input.dataset.current || "";
return;
}
var url = (input.dataset.urlTemplate || "").replace("__page__", value);
if (!url) {
return;
}
window.location.href = url;
}
document.addEventListener("focusin", function (event) {
if (event.target.matches(".pagebox")) {
event.target.select();
}
});
document.addEventListener("keydown", function (event) {
if (!event.target.matches(".pagebox")) {
return;
}
if (event.key === "Enter") {
event.preventDefault();
goToPage(event.target);
}
else if (event.key === "Escape") {
event.target.value = event.target.dataset.current || "";
}
});
})();