Можно ли с помощью i-bem.js проверять email с помощью регулярных выражений или обязательно нужно подключать jQuery? Например, так будет работать бeз jquery
if (/\S+@\S+\.\S+/.test(this.elem('email').val())) return true;
Можно ли с помощью i-bem.js проверять email с помощью регулярных выражений или обязательно нужно подключать jQuery? Например, так будет работать бeз jquery
if (/\S+@\S+\.\S+/.test(this.elem('email').val())) return true;
В bem-forms есть блок validation в котором уже реализована проверка email
this.elem() возвращает jquery объект, кстати
что за bem-forms? киньте ссылочку
https://github.com/bem-incubator/bem-forms
А можно чуть подробнее исходный вопрос? Потому что
i-bem
основывается наjQuery
и, соответственно, подключается в любом случае автоматически.Здравствуйте, @tadatuta Делаю так:
, не работает.
Делаю так:
тоже не работает.
Исправил несколько моментов, так определенно работает:
Проверил, все верно модификатор стал устанавливаться, а вот этот код:
что есть, что нет его, толку никакого (проверки e-mail не происходит). Ошибка отображается всегда, даже если ввожу правильный email.
мм, а у
.registration__error
в CSS написано, что онdisplay: none
? и если да, то этот файл попал в сборку?Да в css все прописано. Ошибка она скрыта. Не вводя email нажимаю отправить, ошибка появляется. Все как и должно быть. Теперь ввожу верный email, вроде ошибка не должна появиться, а она появляется.
Для вот такого BEMJSON:
и вот такого CSS:
у меня приведенный выше JS отрабатывает как нужно: при правильно введенном адресе форма сабмитится, а при неправильном отображается ошибка.
Может где-то в JS есть опечатки? В консоли браузера никаких сообщений нет?
Да все вроде также как у Вас, но не работает. Вот ссылочка /desktop.bundles/registration/registration.ru.html
В данном случае отличие в том, что элемент
registration__email
примиксован к блокуinput
, который является<span>
-ом и содержит<input>
внутри себя (value
уspan
нет). Поэтому правильный вариант получения значения здесь такой:if (/\S+@\S+\.\S+/.test(this.findBlockInside(this.elem('email'), 'input').getVal())) return true;
— найти блокinput
на своем элементеemail
и вызвать API блока input для получения его значения.аааа. вот оно в чем дело. Спасибо!