Скрытие модала после успешной отправки формы
<Этот модал в шаблоне:
<!-- Start modal -->
<button type="button" hx-get="{% url 'events:create' %}" hx-target="#eventdialog" class="btn btn-primary">
Add an event
</button>
<div id="eventmodal" class="modal fade" tabindex="-1">
<div id="eventdialog" class="modal-dialog" hx-target="this">
</div>
</div>
<!-- End modal -->
А это Javascript, который заставляет его показывать модальное окно:
;(function(){
const modal = new bootstrap.Modal(document.getElementById('eventmodal'))
htmx.on('htmx:afterSwap', (e) => {
if (e.detail.target.id == "eventdialog")
modal.show()
})
Я пытался добавить это в код Javascript, но это не работает:
htmx.on('htmx:beforeSwap', (e) => {
if (e.detail.target.id == 'eventdialog' && !e.detail.xhr.response)
modal.hide()
})
Как сделать так, чтобы модальное окно скрывалось после отправки формы? Вот мой вид:
class CreateEvent(LoginRequiredMixin, CreateView):
model = Event
form_class = EventForm
template_name = 'events/events_form.html'
success_url = reverse_lazy('events:index')
def form_valid(self, form):
form.instance.author = self.request.user
event_obj = form.save(commit=True)
image = self.request.FILES.get('image')
if image:
EventImage.objects.create(title=event_obj.title, image=image, event=event_obj)
return super(CreateEvent, self).form_valid(form)