Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

327
Visualizações
Cómo deshabilitar el botón si varias entradas de formulario no cambian en Vue.js

Tengo múltiples formularios creados desde API. Para cada formulario, necesito verificar si el valor de las entradas cambia o no; para que pueda habilitar o deshabilitar el botón.

Entonces, traté de crear una bandera: isChanged: false , para poder hacer el botón así:

 <v-btn :disabled="!isChanged" > Save </v-btn>

Pero, como tengo múltiples formularios, tal vez necesito crear múltiples banderas, pero no entiendo cómo crear múltiples banderas dinámicamente para cada formulario.

Además, tengo un botón Save All que puede requerir una nueva marca como isChangedAny: false para detectar si alguno de los múltiples formularios cambió o no.

Si alguna de las entradas del formulario cambia, ese botón debe habilitarse desde deshabilitado. Pero, lo más importante, no puedo encontrar la manera de crear un método para detectar si las entradas del formulario cambian o no. ¿Cómo puedo hacer eso?

Demostración de CodePen

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Básicamente, tiene dos opciones sobre cómo resolver esto:

  1. Escucha el evento @input en un campo de formulario, una vez que se dispara, establece un hasChanged en verdadero. Esta es la solución fácil, pero no funcionará si el usuario vuelve a cambiar el valor a su original, porque entonces hasChanged sigue siendo verdadero y el formulario aún se puede guardar.
  2. Cree una copia de los datos del formulario original en el gancho mounted() y compare la entrada actual con la entrada original a través de una propiedad computed . Esto funcionará mejor, pero podría ser un poco más difícil de implementar.
about 4 years ago · Juan Pablo Isaza Relatório

0

Puede crear observadores individuales para cada formulario después de obtener los datos y almacenar la identificación de los formularios modificados:

 data: () => ({ items: [], changed: [] }), mounted () { this.getData() // The following code should be run in a callback when the getData() is asynchronous. this.items.forEach((_, index) => { this.$watch(['items', index].join('.'), { deep: true, handler: (newVal, oldVal) => { this.changed.push(newVal.id) } } ); }); }

Luego verifique contra la matriz changed . Si una identificación específica está en esa matriz, active el formulario. Si la longitud de la matriz changed es mayor que 0, active saveAll .

Aquí está el codepen de trabajo

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda