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 символов');


Как вообще проверить состояние функции в переменной?
  • Вопрос задан
  • 2685 просмотров
Пригласить эксперта
Ответы на вопрос 4
hedint
@hedint
Senior front-end developer
Дело не в функции, а в 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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