lavezzi1
@lavezzi1

Как добавлять класс в зависимости от наличия текста в инпуте?

Нужно сделать инпут, при наборе текста в котором лейбл бы появлялся и прилипал внутри инпута вверху. html и css написал, помогите с помощью vue.js сделать добавление класса лейблу только тогда, когда написана хотя бы одна буква или убирать, если нет ни одной буквы. Важное - чтобы класс добавлялся именно не при фокусе на инпуте, а при наборе.
  • Вопрос задан
  • 847 просмотров
Пригласить эксперта
Ответы на вопрос 5
Denormalization
@Denormalization
Читаем vuejs.org/guide/class-and-style.html#ad
Делаем метод\computed и проверяем длину текста к нужном поле, и соотв. возвращаем true\false, класс будет автоматически применятся
Ответ написан
DJZT
@DJZT
Laravel - code for you
С vue.js не знаком, но на jquery да и вроде в нативном js есть событие input.

$('#..').on('input', function(){
var $el = $(this);
if($el.val().length){
$el.addClass('myClass');
} else {
$el.removeClass('myClass');
}
});


Может поможет сам алгоритм реализации.
Это событие срабатывает во время ввода. То есть появился символ - отработало. Удалился - тоже отработало.
Ответ написан
Комментировать
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
можно на чистом css с помощью псевдокласса valid
codepen.io/anon/pen/rLxZGb
Ответ написан
Комментировать
@Tupbich
materializecss.com/forms.html
я так думаю тебе что-то вроде этого надо (только лэйбл уезжает при фокусе). Но думаю что подкрутить не сложно будет.
Ответ написан
Комментировать
@shelomanovd
на вуе просто
<input type="text" placeholder="text" v-model.lazy="str" v-bind:class="class | str">

data: {
		str: null
	},
Ответ написан
Ваш ответ на вопрос

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

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