Маска ввода из значений массива

256
28 мая 2022, 21:50

Как можно реализовать маску ввода, критерием совпадения которой был бы инкрементируемый ряд либо значения из массива, например 100, 200, 300, 400... с использованием или без сторонних библиотек?

Answer 1

Если я правильно понял, то можно сделать нативным инпутом. При необходимости уже в js динамически контролировать значение атрибутов.

<input type="number" step="100" min="100" max="500">

Answer 2

Можно написать функцию inArray, которая будет принимать два параметра: значение и массив, и проверять есть ли такое значение в массиве, и возвращать тру или фолс. Потом вызывать эту функцию с value инпута, и нужным массивом, и выводить сообщение о том что значение недопустимо, и очищать инпут или ничего не делать, если значение допустимо

const input = document.querySelector('#input')
const array = [100, 200, 300, 400, 500]
const inArray = (array, value) => array.includes(parseInt(value))
const mask = event => {
    if (!inArray(array, event.target.value)) {
        event.target.value = ''
        alert(`Допустимые значения для ввода: ${array}`)
    }
}
input.addEventListener('change', mask)
<input type="text" id="input" />

READ ALSO
node.js discord.js В чем проблема?

node.js discord.js В чем проблема?

Cannot read property 'includes' of undefinedКод:

149
cors возвращает ошибку

cors возвращает ошибку

Я делаю fetch-запрос на свой сервер:

269
Создание веб приложения js

Создание веб приложения js

Есть задачаСоздать веб приложение которое будет получать данные из Яндекс метрики, яндекс директ, google analytics и google ads по api и формировать csv файл...

289