@lev89

Как реализовать выбор значения списка из модального окна?

Не знаю как правильно сформулировать заголовок темы. В общем суть такова:
у меня есть форма, в нем кнопка, которая открывает модальное окно, в этой модалке имеются категории в виде списка. Мне нужно, чтобы при выборе категории, его значение (id) подставилось в форму:
Форма:
<div class="form-group">
	<label for="parent_id">Родительская категория</label>
	<button type="button" class="btn btn-warning btn-sm"  data-toggle="modal" data-target=".model-parent">Выбрать категорию</button>
	<input type="hidden" name="parent_id" value=""> <!--Сюда нужно подставить id категории из модалки-->
</div>

Модалка
<div class="modal fade model-parent" tabindex="-1" role="dialog">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <button aria-hidden="true" data-dismiss="modal" class="close" type="button">&times;</button>
                <h4 class="modal-title">Выбрать категорию</h4>
            </div>
            <div class="modal-body">
                <ul>
                    @foreach ($categories as $category)
                        <li><a id="{{ $category->id }}">{{ $category->name }}</a></li>
                       
                    @endforeach
                </ul>
            </div>
        </div>
    </div>
</div>

Никогда такое раньше не реализовывал, подскажите решение
  • Вопрос задан
  • 189 просмотров
Решения вопроса 1
Liatano
@Liatano
Как вариант создать обработчик,который будет регистрироваться в момент открытия модального окна (либо вешать на событие открытия,либо разместить в самой модалке).
в итоге скрипт будет выглядеть как-то так:

let elements = document.querySelectorAll('.modal-body li a');//делаем выборку строк,на которых нужна обработка клика
elements.onclick = function() { //вешаем обработчик
    let id=this.id; //забираем id
    let inp=document.querySelectorAll('.form-group [name="parent_id"]'); //находим инпут
    inp.value=id; //втавляем id  в значение инпута
};


есть пара замечаний по верстке:
  • использовать тег <a> не для ссылок - плохая практика, теги нужно использовать по назначению
  • для верстки и скриптов лучше использовать классы либо id, привязка тегам в обоих случаях ведет к проблемам в будущем.
  • для хранения данных(в данном случае id) лучше использовать атрибуты data, которые были придуманы как раз для этого
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы