Добрый вечер! Прошу помочь разобраться, как при клике добавлять новые поля. Со списком проблем нет. Там из массива в data через v-for отрисовываешь на страницу. Но как быть с input? Работать должно так:
Нажимаешь на кнопку -> Добавляется новый input c label.
Попробуйте добавить в data свойство count и отрисовывать инпуты директивой v-for="(input, i) in count". Нужно будет добавить метод, который будет увеличивать счётчик.
Получилось отрисовывать его только на период загрузки… после загрузки, поле исчезает
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link href="css/styles.css" rel="stylesheet">
<script src="js/vue.js"></script>
</head>
<body>
<div class="wrapper">
<form action="" id="el">
<h3>Форма для теста</h3>
<label for="email">Почта: <br>
<input type="email">
</label>
<label for="text">Фамилия: <br>
<input type="text">
</label>
<label for="text">Имя: <br>
<input type="text">
</label>
<label for="text">Телефон: <br>
<input type="text">
</label>
<br>
<label>Гость</label> <button class="btn btn-primary" @click="addInput">+</button>
<br>
<label for="text" v-for="(label, index) in labels">Гость: {{ index }} <br>
<input type="text">
</label>
<br>
<button class="btn btn-success">ОТправить</button>
</form>
</div>
<script>
let vueBlock = new Vue({
el: '#el',
data: {
labels: "",
},
methods: {
addInput(){
this.labels += 'a'
}
}
})
</script>
</body>
</html>