zorro76
@zorro76

Как обратиться к нужному элементу?

Не могу понять как это сделать:
кусок кода формы
<div class="field">
  <input id="full-name" name="name" type="text" maxlength="25" placeholder="type here">
  <button type="button" class="btn-ok disabled">Ok</button><span class="descr">Press enter</span>
  <span class="valid-msg">name should be min 3 chars</span>
</div>
<div class="field" style="display: none">
  <input id="company" name="company" type="text" placeholder="type here">
  <button type="button" class="btn-ok disabled">Ok</button><span class="descr">Press enter</span>
  <span class="valid-msg">company name should be min 3 chars</span>
</div>

$('#full-name').keyup(function() {
        var that = this;

        setTimeout(function() {
            var res = /[^А-Яа-яA-Za-z ]/g.exec(that.value);
            console.log(res);
            that.value = that.value.replace(res, '');
        }, 0);

        if (this.value.length >= 3) {

            $(this).next('.btn-ok, .btn-last').removeClass('disabled');
            $('.valid-msg').css('display', 'none');

        } else {

            $(this).next('.btn-ok, .btn-last').addClass('disabled');
            $('.valid-msg').css('display', 'block');
        }
    });
.........


логика следующая: второе поле откроется при правильном заполнении первого, есть поле подсказка .valid-msg, так вот в первом поле изначально эта подсказка видна, если пользователь ввел правильные данные, надпись исчезает, кнопка становиться доступной для нажатия, он жмет кнопку и переходит ко второму полю, так вот во втором поле нужно изначально что бы подсказка была видна,а она то display: none;
Не могу обратиться именно к данной .valid-msg
$(this).next('.btn-ok, .btn-last').removeClass('disabled');
$('.valid-msg').css('display', 'none');

UPD на фидл не могу залить, слишком много кода
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
if (this.value.length >= 3) {
    $(this).next('.btn-ok, .btn-last').removeClass('disabled');
    $(this).siblings('.valid-msg').css('display', 'none');
}
https://api.jquery.com/siblings/

или
$(this).closest('.field').find('.valid-msg')

или
$(this).parent('.field').find('.valid-msg')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы