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

Директива wire:keydown.enter

Директива wire:keydown.enter вешается на HTML-элемент и вызывает указанный метод компонента при нажатии клавиши Enter. В значение передаётся имя публичного метода. Данная директива является модификатором базовой директивы wire:keydown и срабатывает только при нажатии конкретной клавиши. После вызова метода Livewire обновляет шаблон компонента.

Синтаксис

<input wire:keydown.enter="methodName" />

Пример

Давайте создадим поле ввода, при нажатии Enter в котором будет выводиться сообщение:

<?php namespace AppLivewire; use LivewireComponent; class Message extends Component { public $text = ''; public $message = ''; public function showMessage() { $this->message = 'You entered: ' . $this->text; } public function render() { return view('livewire.message'); } } ?>
<input type="text" wire:model="text" wire:keydown.enter="showMessage" placeholder="Press Enter" /> <p>{{ $message }}</p>

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

<input type="text" placeholder="Press Enter" /> <p>"You entered: Hello"</p>

Пример

Давайте передадим в метод параметр с текстом из поля ввода:

<?php namespace AppLivewire; use LivewireComponent; class Message extends Component { public $text = ''; public $message = ''; public function showMessage($text) { $this->message = 'You entered: ' . $text; } public function render() { return view('livewire.message'); } } ?>
<input type="text" wire:model="text" wire:keydown.enter="showMessage(text)" placeholder="Press Enter" /> <p>{{ $message }}</p>

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

<input type="text" placeholder="Press Enter" /> <p>"You entered: World"</p>

Пример

Давайте реализуем поиск по нажатию Enter:

<?php namespace AppLivewire; use LivewireComponent; class Search extends Component { public $query = ''; public $results = []; public function search() { $data = ['apple', 'banana', 'cherry', 'date', 'elderberry']; $this->results = array_filter($data, function($item) { return str_contains($item, $this->query); }); } public function render() { return view('livewire.search'); } } ?>
<input type="text" wire:model="query" wire:keydown.enter="search" placeholder="Search..." /> <ul> @foreach ($results as $item) <li>{{ $item }}</li> @endforeach </ul>

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

<input type="text" placeholder="Search..." /> <ul> <li>apple</li> </ul>

Пример

Давайте отправим форму по нажатию Enter:

<?php namespace AppLivewire; use LivewireComponent; class Form extends Component { public $name = ''; public $email = ''; public $success = false; public function submit() { $this->success = true; } public function render() { return view('livewire.form'); } } ?>
<div> <input type="text" wire:model="name" placeholder="Name" /> <input type="email" wire:model="email" wire:keydown.enter="submit" placeholder="Email" /> @if ($success) <p>Form submitted successfully!</p> @endif </div>

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

<div> <input type="text" placeholder="Name" /> <input type="email" placeholder="Email" /> <p>Form submitted successfully!</p> </div>

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

  • директиву wire:keydown,
    которая вызывает метод при любом нажатии клавиши
  • директиву wire:keydown.escape,
    которая вызывает метод при нажатии клавиши Escape
  • директиву wire:keydown.tab,
    которая вызывает метод при нажатии клавиши Tab
  • директиву wire:model,
    которая привязывает поле ввода к свойству компонента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить