Lógica
Para una mejor comprensión, aquí hay algunas capturas de pantalla:
1
2
PD: si cambio mi entrada antes de marcar la casilla de verificación, mi valor salta automáticamente al valor predeterminado (valor DB)
Código
<template> <div class="input-group mb-3 active" v-for="(value, key, index) in list" :key="index"> <div class="input-group-prepend"> <div class="input-group-text"> <input type="checkbox" v-model="checkedFiles" :id="index" :value="value" aria-label="Checkbox for following text input" > </div> </div> <input type="text" :value="value" :id="index" class="form-control" aria-label="Text input with checkbox"> </div> <button class="btn btn-success btn-sm" v-show="isVisible" @click="generate">Generate List</button> </template> <script> export default { name: "directories-component", data() { return { list: [], checkedFiles: [], } }, methods: { getTheList() { //.... this.list = res.data.data; //.... }, generate(e) { e.preventDefault(); console.log(this.checkedFiles); } }, mounted() { console.log('Component mounted.') } } </script>¿Alguna sugerencia?
Use v-model para el campo de texto de entrada
<div class="input-group mb-3 active" v-for="(val, index) in list" :key="index"> // removed key from iterator since list is an array <div class="input-group-prepend"> <div class="input-group-text"> <input type="checkbox" v-model="checkedFiles[index]" :id="index" aria-label="Checkbox for following text input" > // removed the :value attribute </div> </div> <input type="text" v-model="list[index]" :id="index" class="form-control" aria-label="Text input with checkbox"> // Change added </div>