junk1114
@junk1114
Web-программист

Проверка input value в цикле с помощью функции в переменной?

Есть несколько input'ов. Хочу завалидировать значения по длине, что делаю не так? И как правильно?
var func = function() {
			$('.container').find('.text').each(function() {
				if ($(this).val().length < 10)
					return true;
			});
    	}
if (func())
status('Текст должен содержать как минимум 10 символов');


Как вообще проверить состояние функции в переменной?
  • Вопрос задан
  • 2684 просмотра
Пригласить эксперта
Ответы на вопрос 4
@hedint
Web разработчик
Дело не в функции, а в each.
Код должен быть примерно таким:
function check_min_length ()
{ 
    is_error = false;
    $('.text').each(function()
                    {
                        if ($(this).val().length < 10)
                        {
                            is_error = true;
                            return false; //break each

                        }
                    });
    return is_error;
}
Ответ написан
jt3k
@jt3k
Фронтендер, люблю работать и получать удовольствия
.each асинхронный метод. т.е. ваша функция всегда будет выплёвывать то состояние переменной что было до использования .each
чтобы вылечить асинхронность используйте промисы.
или коллбеки

но в конкретном примере я бы группе инпутов делигировал бы обработчик который по oninput проверял бы длину текущего значения и... переключал какой-нить глобальный флаг (или не очень глобальный:] )
Ответ написан
Комментировать
@PyTiMa
Учусь, кручусь, верчусь.
@frees2
myVars = myVars.split("like11231234", 98);
Одной строчкой обрезаем по длине и ненужное удаляем, удаляем запрос
98 количество символов
тут тест www.dulsky.eu/test/4
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Market-place Ростов-на-Дону
от 100 000 до 200 000 ₽
24 июн. 2024, в 14:07
2000 руб./за проект
24 июн. 2024, в 13:33
100000 руб./за проект
24 июн. 2024, в 13:09
50000 руб./за проект