NB
- Следует избегать использования встроенных обработчиков * (onclick, onchange, onkeyup и т. Д.) И использовать вместо них прослушиватели событий.
- Измените
mix="0"
на min="0"
. - Вам необходимо использовать
&&
( И оператор ) в вашем if condition
, как показано и объяснено в ответе @ pswg .
РЕШЕНИЕ:
Если оба ваших входа находятся рядом друг с другом, просто оберните их внутри общего элемента div и нацелите их обоих, используя querySelectorAll () затем используйте метод forEach () , чтобы добавить прослушиватель keyup
к обоим входам, который будет запускать функцию, проверяющую входные значения при вызове события.
Проверьте и запустите следующий фрагмент кода для практического примера того, что я описал выше:
/* JavaScript */
const inputVal = document.querySelectorAll("#someDiv input");
let dps = [];
inputVal.forEach(input => input.addEventListener("keyup", function(){
let value = parseInt(input.value);
if (value >= 0 && value <= 4){
dps[input.id] = value;
console.log(dps);
}
}));
<!-- HTML -->
<div id="someDiv">
<input type="number" class="form-control" id="0" min="0" max="4">
<input type="number" class="form-control" id="1" min="0" max="4">
</div>
Если ваши входные элементы не находятся рядом друг с другом, просто наведите на них отдельную цель, используя метод getElementById () изатем добавьте слушатель keyup
к обоим входам, который будет запускать функцию проверки входных значений при вызове события.
Проверьте и выполните следующий Фрагмент кода для практического примерачто я описал выше:
/* JavaScript */
const inputVal1 = document.getElementById("0");
const inputVal2 = document.getElementById("1");
let dps = [];
function checkVal(){
let value = parseInt(this.value);
if (value >= 0 && value <= 4){
dps[this.id] = value;
console.log(dps);
}
}
inputVal1.addEventListener("keyup", checkVal);
inputVal2.addEventListener("keyup", checkVal);
<!-- HTML -->
<input type="number" class="form-control" id="0" min="0" max="4">
<div>ABCD</div>
<input type="number" class="form-control" id="1" min="0" max="4">