Livewire сбрасывает раскрывающийся список

Контекст

У меня есть форма, полностью построенная с использованием компонента livewire, потому что мне нужно связать несколько входных данных для выполнения вычислений в реальном времени. Я ожидаю, что выпадающие элементы не изменятся, но поля ввода текста должны быть динамическими.

Проблема

когда я ввожу значение в связанное поле <input>, ранее выбранные элементы в раскрывающемся списке <select> сбрасываются. Гифка выпуска:

(![gif по теме](https://i.imgur.com/FbbuiN7.gif))

Я попытался использовать функцию "old('VALUE')", но, похоже, это не дало никакого эффекта.

Это код ввода селектора «проект» (код селектора этапа идентичен):

<select id = "range_project_id" name = "project_id" value = "{{ old('project_id') }}"
   class = "px-2 form-select" disabled   form = "create-land-registry-form">
   <option  selected>Choose a project..</option>
   <option disabled>{ID}:{Name}</option>
   @foreach (App\Models\Project::all() as $project)
   <option value = "{{ $project->id }}">
      {{ $project->id . ': ' . $project->name }}
   </option>
   @endforeach
</select>

Это код одного из селекторов диапазона:

<div class = "row">
   <input wire:model.lazy = "landRangeStart" type = "text" name = "land_id_start"
   id = "land_range_start" disabled  form = "create-land-registry-form" 
   class = "col-3 form-control-lg border mx-2"  placeholder = "Starting from"
   value = "{{ old('land_id_start') }}" />
</div>

Я попытался использовать функцию "old('VALUE')", но, похоже, это не дало никакого эффекта.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
57
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В родительском div добавьте wire:ignore.self. Например:

<div wire:ignore.self><-- Parent div -->
//Your other dropdown code in here
</div>

Эта директива указывает Livewire игнорировать изменения в подмножестве HTML в вашем компоненте.

Поскольку вы используете необработанный выбор HTML, а не стороннюю библиотеку, такую ​​​​как Select2, мой вопрос: почему бы не привязать значение выбора к компоненту livewire вот так?

Это решит вашу проблему, и компонент будет знать о ценности с самого начала.

Другие вопросы по теме