Всем привет, в ходе перехода на бэм, возникает ряд вопросов, которые прям так и хочется решить по старинке, но нужно двигаться вперед. Итак вопрос, есть блок с формой, в нем куча инпутов, одному из них я передаю параметр name:'phone', в простом варианте js я просто бы сделал бы так
$(document).ready(function() {
$('input[name="phone"]').mask('+7(999) 999-99-99');
$('button').on('click', function(event) {
event.preventDefault();
});
В варианте с бэм, как я понимаю, я создаю в папке desktop.blocks/form файлик form.js в нем описываю данную задачу, определяю блок form и тут встает вопрос как реализовать поиск input с параметром name:'phone': -повесить на него модификатор и найти через него -отыскать по параметру name
Как будет правильнее, может есть примеры какие, кроме того что предствленно в Быстром старте
1-Все формы содержат телефон в проекте 2-описывать это в папке блока input (input.js), обязательно ли использовать модификатор тк это уж больно громоздко выглядит
С размещением понятно, а саму то маску по name: phone как организовать
я же говорю, сделать модификатор input_type_phone и в js-файле модификатора имплементировать. Имя может быть разное (в одной форме два телефона, например, домашний и служебный), на имя не завязываемся, завязываемся на модификатор.
Все понял, на каждый инпут просто навешивать свой модификатор (к примеру input_type_phone, input_type_data и тд)
С этим разобрался, далее все же хотел подключить библиотеку mackedinput. Правильна ли логика: 1-к блоку с формой миксую блок jquerymask 2-на уровне common.blocks создаю папку jquery в ней размещаю папку mask 3-создаю файл jquery__mask.js
4-в файле input_type_phone.js описываю что мне нужно получить
Вроде хороший план, только я не понял, зачем к блоку с формой миксовать jquery___mask
Чтобы плагин к jQuery попал в сборку, нужно его указать в зависимостях input_type_phone. Ещё, я не понял, что за input_type_data. Имелся в виду input_type_date?
jquery___mask будет содержать общую библиотеку http://digitalbush.com/projects/masked-input-plugin/ или правильнее будет избегать подключения сторонних библиотек?
да ошибся date, конечно же
Я не вижу причин избегать подключения сторонних библиотек.
@apsavin маска заработала, но не совсем нравиться запись, саму библиотеку maskedinput миксую к форме(а если на странице 10 форм, тогда проще замиксовать наверно к блоку page)
После сборки получается такая конструкция:
Суть вопроса, как записать по идеалогии
this.elem('control').mask('+7(999) 999-99-99');
1-блок maskedinput содержит библиотеку, которая инклудится, вот файл maskedinput.js
Или такое решение в корне не правильное?
2- Спасибо большое! Все работает
Я использую https://github.com/bem-contrib/bem-forms в ней есть все по валидации и поиску инпутов внутри формы да и сама форма реализована.
Далее написал вот такую обертку https://gist.github.com/JiLiZART/d720a440a7b6139ae17ab738dce39e3f над плагином https://github.com/jackocnr/intl-tel-input
@JiLiZART полезная инфа, очень!! А подскажи нет ли линков на готовые сборки слайдеров под бэм?
@webtehnology слайдер в смысле контрол или в смысле карусель? Если второе, то https://github.com/tadatuta/bl-carousel
@tadatuta то что нужно, правда заработало когда переименовал файл carousel.bemhtml в carousel.bemhtml.js
Нашёл так же слайдер https://github.com/godfreyd/bem-slider он идентичен https://github.com/tadatuta/bl-carousel те по одной картинке листает, пример хотелось наподобие https://ru.bem.info/libs/bem-bl/dev/touch-phone/b-slider/examples/ с возможностью управления
Вот ещё одно решение https://github.com/Oopscurity/oopsy
Кину и свои 5 копеек по реализации jQuery.mask
jquery/mask/jquerymask.deps.js
jquery/mask/jquerymask.browser.js
input/_type/input_type_phone.deps.js
input/_type/input_type_phone.browser.js
@belozyorcev Спасибо за идею, а библиотека jquery.mask.min.js это http://zencoder.ru/javascript/jquery-mask-plugin/ ????
@webtehnology да