HTML5 имеет проверку только на номер, которая вам нужна. Просто введите type="number"
в свои поля ввода вместо текста.
Что касается JS-части вопроса - checkInput()
будет вызываться при вводе чего-либо в поля ввода.
Внутри него вы получите событие в качестве параметра, например, так:
function checkInput(e) {}
Вы можете получить значение ввода, используя ключевое слово this
или объект события.
function checkInput(e) {
const value = e.target.value;
// check if value is a number
// etc.
}
ОБНОВЛЕНИЕ:
Возможно, попробуйте атрибуты данных. Ваш HTML-код будет выглядеть следующим образом:
<form id="inputform">
<input type="text" name="length[]" value="" data-number="1" />
<input type="text" name="length[]" value="" data-number="2" />
<input type="text" name="length[]" value="" data-number="3" />
<input type="submit" value="Submit" />
</form>
И JavaScript будет выглядеть так:
var formElem = document.querySelector("#inputform");
formElem.addEventListener("input", checkInput);
function checkInput(e) {
console.log(e.target.dataset.number);
console.log(e.target.value);
}
Это даст вам 1, 2 или 3 в зависимости от того, какой ввод был изменен. Вы также можете получить значение, введенное пользователем, в e.target.value