РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
16 of 274 menu

Директива wire:submit.prevent

Директива wire:submit.prevent используется на HTML-элементе form и предотвращает стандартное поведение браузера при отправке формы (перезагрузку страницы). В значение передаётся имя публичного метода компонента, который будет вызван после отправки формы. Это эквивалентно совместному использованию директив wire:submit и .prevent.

Синтаксис

<form wire:submit.prevent="methodName"> <!-- поля формы --> <button type="submit">Отправить</button> </form>

Пример

Давайте создадим форму с одним полем ввода и кнопкой отправки. При отправке формы будем сохранять введённый текст в свойство компонента $text:

<?php namespace AppLivewire; use LivewireComponent; class FormComponent extends Component { public $text = ''; public function save() { // Имитация сохранения данных session()->flash('message', 'Сохранено: ' . $this->text); } public function render() { return view('livewire.form-component'); } } ?>
<div> @if (session()->has('message')) <div>{{ session('message') }}</div> @endif <form wire:submit.prevent="save"> <input type="text" wire:model="text"> <button type="submit">Отправить</button> </form> <p>Текущий текст: {{ $text }}</p> </div>

Результат выполнения кода:

<div> <form> <input type="text"> <button type="submit">Отправить</button> </form> <p>Текущий текст: привет</p> </div>

Пример

Давайте модифицируем пример, добавив валидацию данных перед сохранением:

<?php namespace AppLivewire; use LivewireComponent; use LivewireAttributesRule; class FormComponent extends Component { #[Rule('required|min:3')] public $text = ''; public $message = ''; public function save() { $this->validate(); $this->message = 'Сохранено: ' . $this->text; } public function render() { return view('livewire.form-component'); } } ?>
<div> @if ($message) <div>{{ $message }}</div> @endif <form wire:submit.prevent="save"> <input type="text" wire:model="text"> @error('text') <span>{{ $message }}</span> @enderror <button type="submit">Отправить</button> </form> </div>

Результат выполнения кода:

<div> <form> <input type="text"> <span>Поле text должно содержать не менее 3 символов.</span> <button type="submit">Отправить</button> </form> </div>

Смотрите также

  • директиву wire:submit,
    которая вызывает метод при отправке формы без предотвращения стандартного поведения
  • директиву wire:click.prevent,
    которая отменяет действие браузера по умолчанию при клике
  • директиву wire:model,
    которая привязывает поле ввода к свойству компонента
  • директиву wire:submit.self,
    которая обрабатывает отправку только самой формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить