Я пытаюсь запретить пользователю переходить от указанного параметра c числового значения, скажем, от 1 до 9999,99. У меня есть несколько входных значений, которым я назначил идентификаторы. Я использую оператор switch для установки их параметров (min и max), поэтому первый будет от 1 до 9999,99, второй - от 1 до 999,99, третий - от 1 до 99,99. Тем не менее, я все еще могу вводить эти значения и не задумываться о своих ограничениях, может кто-нибудь, пожалуйста, поделитесь своими мыслями, все еще пытаясь проработать это. Спасибо за любую помощь
function getMinMax(ctrlId) {
let min = 0;
let max = 9999;
switch (ctrlId) {
case "aID":
min = 1;
max = 99999.99;
break;
case "bID":
min = 1;
max = 999.99;
break;
case "cID":
min = 1;
max = 99.99;
break;
}
return { min: min, max: max };
}
async function checkMinMax(ctrl) {
let value = await ctrl.value();
if(value === '') return;
let ctrlId = await ctrl.id;
let minMax = getMinMaxForField(ctrlId);
let isNotANumber = Number.isNaN(value);
if(!isNotANumber && Number.parseFloat(value) >= minMax.min && Number.parseFloat(value) <= minMax.max) {
ctrl.value(value);
} else {
alert('Please enter a value between ' + minMax.min + ' and ' + minMax.max + '.')
ctrl.value('');
}
}