Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Если input заполнен присвоить класс родителю div (https://javascript.ru/forum/jquery/70383-esli-input-zapolnen-prisvoit-klass-roditelyu-div.html)

dasha862 01.09.2017 15:57

Если input заполнен присвоить класс родителю div
 
Приветствую.

Есть скрипт, который при focus input добавляет класс к div. Подскажите, пожалуйста, как сделать что бы класс подставлялся при focus(как сейчас) и когда input заполнен.
$('.input-control').on('focus blur', function(e){
   $(this).parent()[e.type === 'focus' ? 'addClass' : 'removeClass']('input-focused');
});

<div><input name="email" type="text" class="input-control"></div>  
<div><input name="password" type="password" class="input-control"></div>

ksa 01.09.2017 16:00

Цитата:

Сообщение от dasha862
и когда input заполнен

А что значит "input заполнен"?

dasha862 01.09.2017 16:03

Когда пользователь ввел логин и/или пароль.

ksa 01.09.2017 16:04

Цитата:

Сообщение от dasha862
Когда пользователь ввел логин или пароль.

Как понять, что ввод логина или пароля завершен?

dasha862 01.09.2017 16:10

Моя задача - оформление div и input при focus и когда в поле что-то написано(т.е не пустое), для этого нужен класс.

j0hnik 01.09.2017 16:22

Цитата:

Сообщение от dasha862 (Сообщение 463375)
Моя задача - оформление div и input при focus и когда в поле что-то написано(т.е не пустое), для этого нужен класс.

замените ваш, на этот
$('.input-control').on('focus blur', function(e){
   if(!$(this).val())$(this).parent()[e.type === 'focus' ? 'addClass' : 'removeClass']('input-focused');
});

dasha862 01.09.2017 16:25

Это просто отлично!
Большое Спасибо!

dasha862 01.09.2017 16:55

Только вот ошибка в консоли появилась:
TypeError: "removeClass" is not a function

Nexus 01.09.2017 17:01

j0hnik, может я что-то не понял, но по-моему (и судя по посту 8) в строке 3 какая-то хрень написана.

$(this).val() не вернет объекта jq, а у string||null нет методов addClass, removeClass.

dasha862 01.09.2017 17:03

Скрипт работает, но ошибка вылезла:
TypeError: "removeClass" is not a function


Часовой пояс GMT +3, время: 14:03.