Задать вопрос
@RushV

Как переключать классы у input в зависимости от длины его значения?

Как правильно проверить input на заполнение?
Если меньше 10 символов добавить класс 1, иначе добавить класс 2.

let tel = $("[type='tel']").change(function(){
        if(tel.length < 9 ){
            tel.addClass(1);
        }
        else{
            tel.addClass(2);
        }

Что-то не работает.
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 2
mrhard
@mrhard
web разработчик
$("[type='tel']").change(function(){
        if($(this).val().trim().length < 10 ){
            $(this).addClass('class_1');
        }
        else{
            $(this).addClass('class_2');
        }
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
Каким input'ам, по какому событию и какие надо переключать классы, какова минимально допустимая длина содержимого:

const selector = '[type="tel"]';
const event = 'input';
const minLength = 10;
const classNames = [ 'какой-то класс', 'какой-то другой класс' ];

Переключаем:

$(selector).on(event, function() {
  const isLengthOK = $(this).val().length >= minLength;
  $(this)
    .toggleClass(classNames[0], !isLengthOK)
    .toggleClass(classNames[1], isLengthOK);
});

или

document.querySelectorAll(selector).forEach(function(n) {
  n.addEventListener(event, this);
}, ({ target: t }) => {
  const isLengthOK = +(t.value.length >= minLength);
  classNames.forEach((n, i) => t.classList.toggle(n, isLengthOK === i));
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы