Не может быть формы в модальном режиме - Vue Component

Я пытаюсь создать модальное окно с формой, которая использует слоты. Я хочу сохранить дизайн на модальном экране и поместить кнопки отправки в слот нижнего колонтитула.

По какой-то причине это не позволяет мне открыть тег формы в слоте body, а затем закрыть его в нижнем колонтитуле.

Одно из решений — поместить все в тег body, но тогда я упускаю стиль нижнего колонтитула.

Любые решения для этого?

      <h3 slot = "header">Add Folder</h3>
                <span slot = "body">



                    <form @submit.prevent = "addFolder">


                        <div class = "form-group" v-bind:class = "(this.errors.filter(e => e.name === 'name').length > 0) ?'form-error':'' ">
                            <label for = "name">Name</label>
                            <input type = "text" name = "name" class = "form-control" aria-label = "name" v-model = "folder.name" />
                        </div>



                </span>

                <span slot = "footer">

                    <input type = "submit" class = "btn-success js-scroll-trigger" value = "Add" />
                    <button class = "btn-edit js-scroll-trigger" @click = "showAddFolderModal = false">Cancel</button>


                    </form>

                </span>



            </modal>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
760
2

Ответы 2

Сохранение его в теле не является единственным решением, но это допустимый синтаксис. Если синтаксис HTML не изменился, в чем мы сомневаемся, вы не можете начинать тег где угодно и заканчивать его где угодно.

Теперь к вашему решению, вы пробовали иметь все Нижний колонтитул внутри тела? Другой возможный способ - не иметь кнопку type=submit, а просто иметь обычную кнопку и обрабатывать ее нажатие. В вашем обработчике кликов у вас уже будут данные формы.

Возможно, переместите форму наружу, чтобы она содержала оба слота. Не уверен, что что-то подобное сработает для вас, потому что ваш шаблон не завершен, но:

<template>
  <div>
    <modal>
      <h3 slot = "header">Add Folder</h3>
      <form @submit.prevent = "addFolder">
        <span slot = "body">
          <div class = "form-group" v-bind:class = "(this.errors.filter(e => e.name === 'name').length > 0) ?'form-error':'' ">
            <label for = "name">Name</label>
            <input type = "text" name = "name" class = "form-control" aria-label = "name" v-model = "folder.name" />
          </div>
        </span>

        <span slot = "footer">
          <input type = "submit" class = "btn-success js-scroll-trigger" value = "Add" />
          <button class = "btn-edit js-scroll-trigger" @click = "showAddFolderModal = false">Cancel</button>
        </span>
      </form>
    </modal>
  </div>
</template>

Другие вопросы по теме