Olá, bom dia!
Estou criando um formulário em Vue.js, como faço para mudar de cor o campo do input quando o campo for preenchido?
Obrigada.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, bom dia!
Estou criando um formulário em Vue.js, como faço para mudar de cor o campo do input quando o campo for preenchido?
Obrigada.
Oi Sheila, nesse seu formulário cada input é um componente separado? Me explica mais ou menos como você está fazendo esse formulário pra poder pensar em uma solução.
Oi, Wanderson boa noite!
Isto são componentes autocomplete e select. Gostaria de quando a pessoa selecionar ou digitar algum valor no input ficasse as bordas do input verdes, informando que está preenchido. Tem alguma solução pra isto?
Desde já agradeço sua atenção.
Obrigada e abraços
Talvez este link seja útil:
https://stackoverflow.com/questions/51195581/vuejs-change-border-color-of-the-input-if-input-is-already-filled-in/51401234
Oi Sheila, conseguiu avançar com a sugestão que o Daniel deu?
Olá bom dia, Daniel e Priscila! Tudo bem ?
Não funcionou não, ainda não conseguir solucionar meu problema.
Obrigada pela ajuda.
Abraços
Oi Sheila, tudo bem? Desculpa a demora. Bom, consultei a documentação por um exemplo simples que pudesse te ajudar. Olha essa página: https://vuejs.org/v2/guide/class-and-style.html
O que tem descrito ali?
Temos o v-bind:class que troca as classes dinamicamente de acordo com estado do componente. O trecho mais específico é esse:
<div v-bind:class="{ active: isActive }"></div>
A classe active será aplicado a div caso o isActive do componente seja true. Bom, ai só precisamos adaptar o exemplo, porem, temos um outro ponto, isso funciona pra elementos pré preenchidos, mas acredito que precisamos alterar o estado ouvindo o evento de blur, quando o elemento perde o foco.
Neste caso precisamos do v-on, que parece muito o onClick, onBlur... E você pode ler mais nessa página: https://vuejs.org/v2/guide/events.html
Então, vamos ver um pouco de código combinando tudo pra ficar claro. Primeiro o "html":
<div v-bind:class="{ filled: isFilled }" v-on:blur="checkField"></div>
E no JS do componente teremos algo do tipo:
data : {
isFilled: false
},
methods: {
checkField : function(){
this.isFilled = this.value.lenght ? true : false;
},
}
Foi o que consegui bolar lendo a documentação. Claro, você que já estudou um pouco mais do que eu, pode saber melhor como fazer. Aqui é só um esboço, precisa testar.
Desculpa a demora, espero que ajude!
Olá, boa tarde Wanderson!
Vou testar aqui, qualquer coisa aviso.
Obrigada ,
Abraços.
Algum progresso Sheila?
Olá, bom dia Wanderson!
Tudo bem ?
Sim conseguir ... Muito Obrigada pela suas dicas, me ajudaram muito.
Abraços.
Ótimo Sheila! Fico feliz que tenha conseguido. Só tenho um pedido, lembra de marcar o tópico como resolvido quando conseguir resolver o problema?
É só ir até a resposta que te ajudou e clicar em "marcar como solução".