@Alex_87

Как при клике, добавлять новое поле input во Vue?

Добрый вечер! Прошу помочь разобраться, как при клике добавлять новые поля. Со списком проблем нет. Там из массива в data через v-for отрисовываешь на страницу. Но как быть с input? Работать должно так:
Нажимаешь на кнопку -> Добавляется новый input c label.
5ec252137fd01624601973.png
P.S. попробовал сделать так, но поле появляется только в момент загрузки. После, оно исчезает...
<!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>
  • Вопрос задан
  • 3038 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 2
dimovich85
@dimovich85 Куратор тега JavaScript
https://u-academy.net/
Пример
Кол-во инпутов связано с кол-вом элементов какого-то массива.
Ответ написан
labels - массив. по клику добавляете в labels новый элемент
push
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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