使用 Laravel Livewire 将焦点转移到另一个领域

use*_*227 1 laravel laravel-livewire

是否可以在不使用任何 js 代码的情况下将焦点从 laravel livewire 设置到另一个字段。

input wire:model="sku" wire:keydown.enter="getProductInfo" type="text">
Run Code Online (Sandbox Code Playgroud)

我试图在用户输入 sku 并按 Enter 时获取产品信息。如果找到详细信息,焦点必须转到最后一个字段。那么,是否可以在不使用任何外部 JavaScript 的情况下实现呢?

fah*_*152 5

您需要举办一个活动来实现这一目标。从 getProductInfo 函数发出一个事件。像这样 :

$this->emit('change-focus-other-field') //any unique event name you want

Run Code Online (Sandbox Code Playgroud)

然后在您的 Livewire 组件刀片中捕获此事件。并做任何你想做的事。(特别是在你的情况下。通过 jQuery 聚焦该领域。我假设你已经在你的项目中导入了 jQuery)

@push('scripts')
<script>
   window.livewire.on('change-focus-other-field', function () {
        $("#field-you-want-to-focus").focus();
    });

</script>
@endpush

Run Code Online (Sandbox Code Playgroud)