Добрый день, столкнулся с такой проблемой:
Имеется блок form
<form class="form form_type_register info-modal i-bem form_js_inited info-modal_js_inited" data-bem="{"form":{"controller":"zfclogin","action":"register"},"info-modal":{}}">
<div class="form__content">
<div class="form__label">
<div class="form__label_text">Почта:</div>
<div class="form__label_input form__label_email">
<span class="input input_theme_islands input_size_m input_type_text input_width_available input_has-error i-bem input_js_inited" data-bem="{"input":{}}">
<div class="input__box">
<input class="input__control" name="email" autocomplete="off" type="text">
<span class="input__icon"></span>
</div>
</span>
</div>
</div>
<div class="form__label">
<div class="form__label_text">Пароль:</div>
<div class="form__label_input">
<span class="input input_theme_islands input_size_m input_type_password input_width_available input_has-error i-bem input_js_inited" data-bem="{"input":{}}">
<div class="input__box">
<input class="input__control" name="password" autocomplete="off" type="password">
<span class="input__icon"></span>
</div>
</span>
</div>
</div>
<div class="form__label">
<div class="form__label_text">Повтор:</div>
<div class="form__label_input">
<span class="input input_theme_islands input_size_m input_type_password input_width_available input_has-error i-bem input_js_inited" data-bem="{"input":{}}">
<div class="input__box">
<input class="input__control" name="passwordVerify" autocomplete="off" type="password">
<span class="input__icon"></span>
</div>
</span>
</div>
</div>
<div class="form__button">
<button class="button button_theme_islands button_size_l button_type_submit button_view_dark button_width_available button__control i-bem" role="button" type="submit" data-bem="{"button":{}}">
<div class="button__text">Завершить</div>
</button>
</div>
</div>
</form>
С набором label и input.
Так вот, на кнопку submit навешивается дейтсвие bindTo('submit') и выполнятся функция:
_onGetRegisterMethod:function() {
var data = {"email":"error","password":"error"}
for(var data in json) {
if(this.elem('label_'+data)) {
this.elem('label_'+data).addClass('form_error');
}
}
}
То есть, в
<div class="form__label_input form__label_email">...</div>
добавляется класс form_error
.
Вопрос в том, как именно в блок input, где элемент __icon
добавить к примеру, текст, чтобы имеено в нужной блоке form__label_input form__label_n
был добавлен текст в блок input__icon
.
Вариантов много:
type
(this.findBlockInside({ block: 'input', modName: 'type', modVal: data }
)).form
и использовать его для поиска: (this.findBlockInside(this.elem(data), 'input')
).name
(this.domElem.find('[name=' + data + ']').parent('.input').bem('input')
). И так далее.@tadatuta, К примеру, я выбрал 2 вариант, с миксами. Тогда как обратиться к элементу icon, у input и сделать с ним что-либо? Может, я что не так делаю, но когда обращаюсь через elem(), то пишет ошибку...
должно работать так: