Skip to content

Commit fd18fcb

Browse files
authored
Валидация формы поста перед вызовом preview (laravelsu#261)
1 parent cb675d6 commit fd18fcb

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Controller } from '@hotwired/stimulus';
2+
3+
export default class extends Controller {
4+
static targets = ['form'];
5+
6+
validate(event) {
7+
if (!this.formTarget.reportValidity()) {
8+
// Важно! Остановка всплытия события, включая текущий уровень
9+
// Это нужно для того, чтобы не вызывались остальные обработчики
10+
event.stopImmediatePropagation();
11+
}
12+
}
13+
}

resources/views/post/edit.blade.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<div class="bg-body-tertiary p-4 p-xl-5 rounded">
77
<div class="col-xxl-8 mx-auto">
88

9-
<form method="post">
9+
<form method="post" data-controller="post-preview" data-post-preview-target="form">
1010
<div
1111
data-controller="tabs"
1212
data-tabs-active-tab-class="bg-body-secondary"
@@ -29,7 +29,7 @@
2929
<button
3030
id="preview"
3131
data-tabs-target="tab"
32-
data-action="click->tabs#change"
32+
data-action="click->post-preview#validate click->tabs#change"
3333
type="submit"
3434
formaction="{{ route('post.preview') }}"
3535
class="btn btn-link text-decoration-none link-body-emphasis"

0 commit comments

Comments
 (0)