Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Стили (CSS) » Как поправить JS для корректной работы input поля?

Как поправить JS для корректной работы input поля?


     Стили (CSS), jQuery    2552

вопрос
Автоматически заполоненное поле fieldset input через сохраненный логин работает некорректно.
Текст заполненного поля выходит поверх текста подсказки поля.
При заполненном поле тест подсказки должен быть сверху.
Ссылка на скрипт
Наверно нужно что то дописать сюда:

<script type="text/javascript">
$('input').on('blur', function(){
  if( !$(this).val() == "" ){
    $(this).next().addClass('stay');
  } else {
    $(this).next().removeClass('stay');
  }
});
</script>

Скрин с проблемой прикрепил.
Как поправить JS для корректной работы input поля?



Ответа пока нет


15 комментариев

enterlive
Юзер

enterlive - -

ребята помогите пожалуйста, очень надо, я в JS ноль =(
Там по любому две-три строки кода...

FastFud
Юзер

FastFud - -

Может проблема не в скрипте а в css ?)

enterlive
Юзер

enterlive - -

Цитата: FastFud
Может проблема не в скрипте а в css ?)

Тут в скрипте дело, потому что указывается при input-e что подсказку-текст нужно сдвинуть вверх. А когда введено значение автоматически, то скрипт не определяет и подсказку не сдвигает. Нужно чтобы скрипт определил, что текст уже заполнено внутри и сдвинулся вверх. CSS этого не сотворит.

enterlive
Юзер

enterlive - -


Должно быть вот как:

FastFud
Юзер

FastFud - -

За анимацию отвечает класс в css, функция на jQuery добавляет и удаляет лишь этот класс.

enterlive
Юзер

enterlive - -

Цитата: FastFud
За анимацию отвечает класс в css, функция на jQuery добавляет и удаляет лишь этот класс.

При чем здесь анимация? Анимация работает как в ссылке которую я скинул. Только когда сохранен в браузере логин и пароль, отображается некорректно. Это поправить в CSS невозможно! Если конечно не применить магию...

enterlive
Юзер

enterlive - -


Чтобы понять было проще

FastFud
Юзер

FastFud - -

Попробуйте так:
$('input').each(function(){
  var inp = $(this),
      id = inp.attr('id');
  if (inp.val()) {
    $('[for='+id+']').addClass('stay');
  } else {
    inp.on('blur', function(){
    if( !$(this).val() == "" ){
      $(this).next().addClass('stay');
    } else {
      $(this).next().removeClass('stay');
    }
  });
  }
});

enterlive
Юзер

enterlive - -

Цитата: FastFud
Попробуйте так:

нет, не работает

blacksand
Юзер

blacksand - -

может ссылку проще дать ? что бы наглядно видеть проблему, а не добаный скрин

FastFud
Юзер

FastFud - -

if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) {
    $(window).load(function(){
        $('input:-webkit-autofill').each(function(){
           var id = $(this).attr('id');
            $('label[for='+id+']').addClass('stay');
        });
    });
}

enterlive
Юзер

enterlive - -

Цитата: FastFud
if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) {
    $(window).load(function(){
        $('input:-webkit-autofill').each(function(){
           var id = $(this).attr('id');
            $('label[for='+id+']').addClass('stay');
        });
    });
}

Вав!!! Большое спасибо!!! Работает =) Только это будет работать под Chrome, или на всех браузерах?

FastFud
Юзер

FastFud - -

Да, в остальных наверное будет работать лишь тогда когда из разработчики поумнеют )

enterlive
Юзер

enterlive - -

Цитата: FastFud
Да, в остальных наверное будет работать лишь тогда когда из разработчики поумнеют )

Нужно ставить как ответ на вопрос в теме =)
Кстати если выполнил вход и потом выход ошибка повторяется. Только когда страница обновляется то снова работает скрипт. Как повторить эту функцию снова после выхода?

enterlive
Юзер

enterlive - -

ДЕЛЕТЕД

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

наверх