изменение фокуса на другое поле с помощью laravel livewire

Можно ли установить фокус на другое поле из laravel livewire без использования какого-либо js-кода.

input wire:model="sku" wire:keydown.enter="getProductInfo" type="text">

Я пытаюсь получить информацию о продукте, когда пользователь вводит артикул и нажимает клавишу ВВОД. Если он найдет детали, фокус должен перейти к последнему полю. Итак, возможно ли это без использования внешнего JavaScript.


person user3765227    schedule 18.04.2020    source источник
comment
Пожалуйста, отредактируйте, чтобы добавить сюда содержательный код и описание проблемы. Размещение минимального воспроизводимого примера, демонстрирующего вашу проблему, увеличит ваши шансы на получение хороших ответов.   -  person Purgatory    schedule 18.04.2020


Ответы (1)


Для этого вам понадобится мероприятие. испустить событие из вашей функции getProductInfo. нравится :

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

Затем зафиксируйте это событие в лезвии компонента livewire. и делай что хочешь. (в вашем случае конкретно. сфокусируйте поле через jQuery. Я предполагаю, что вы импортировали jQuery в свой проект)

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

</script>
@endpush

person fahim152    schedule 18.04.2020
comment
Почему кто-то, использующий Laravel Livewire, должен использовать jquery: D - person Slowwie; 06.10.2020
comment
добиться взлома. хм, может быть. - person Priyal; 08.02.2021