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)

j0hnik 01.09.2017 17:05

$('.input-control').on('focus blur', function(e){
   if(!$(this).val())$(this).parent()[e.type === 'focus' ? 'addClass' : 'removeClass']('input-focused');
});

прошу прощения

Nexus 01.09.2017 17:07

dasha862, добавить класс, если это focus и поле заполнено.
$('.input-control').on('focus blur', function(e){
	$(this).parent()[(e.type=='focus' && $.trim($(this).val()).length)?'addClass':'removeClass']('input-focused');
});

j0hnik 01.09.2017 17:14

Nexus,
Только не && а или ||

dasha862 01.09.2017 17:20

Не знаю в чем разница между а или ||, поставила ||, все ок. СПАСИБО ВАМ!

Nexus 01.09.2017 17:27

dasha862, https://learn.javascript.ru/logical-ops

dasha862 01.09.2017 17:32

Благодарю:) , похоже тот же принцип, что и в smarty.

dasha862 03.09.2017 21:33

В продолжении темы.
При заполнении полей и отправки формы, например, код с картинки введен неправильно, страница обновляется, поля по-прежнему заполнены, но скрипт почему-то не подставляет класс input-focused, т.е не определяет, что они заполнены. Подскажите, пожалуйста, как это реализовать.
Проверяла на обоих вариантах.

j0hnik 03.09.2017 22:29

if($('.input-control').val())$('.input-control').parent().addClass('input-focused');

добавьте перед функцией

dasha862 03.09.2017 22:44

Я Вам очень признательна. Спасибо.

dasha862 06.09.2017 14:03

Подскажите, пожалуйста, как в скрипте указать, что parent - это div(еще лучше с классом), понадобилось обернуть input span-ом, и ему присвоился класс input-focused.
if($('.input-control').val())$('.input-control').parent().addClass('input-focused');

$('.input-control').on('focus blur', function(e){
   if(!$(this).val())$(this).parent()[e.type === 'focus' ? 'addClass' : 'removeClass']('input-focused');
});

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


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