передать значение в input?
у меня есть форма, в нем кнопка, которая открывает модальное окно, в этой модалке имеются категории в виде списка. Мне нужно, чтобы при выборе категории, его значение (id) подставилось в форму в input hidden.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<form method="post" action="" class="form-horizontal form-bordered">
<div class="card-body">
<div class="form-group">
<label for="name">Название категории</label>
<input type="text" class="form-control" id="name" name="name">
</div>
<div class="form-group">
<label for="parent_id">Родительская категория</label>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Выбрать категорию
</button>
<input type="hidden" name="parent_id" value="">
</div>
</div>
<!-- /.card-body -->
<div class="card-footer">
<button type="submit" class="btn btn-primary">Добавить</button>
</div>
</form>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<ul style="list-style: none">
<li><a class="category_parent_id" id="1" style="cursor: pointer">Категория 1</a></li>
<li><a class="category_parent_id" id="2" style="cursor: pointer">Категория 2</a></li>
<li><a class="category_parent_id" id="3" style="cursor: pointer">Категория 3</a></li>
<li><a class="category_parent_id" id="4" style="cursor: pointer">Категория 4</a></li>
<li><a class="category_parent_id" id="5" style="cursor: pointer">Категория 5</a></li>
<li><a class="category_parent_id" id="6" style="cursor: pointer">Категория 6</a></li>
</ul>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
как это реализовать через JS?
Ответы (1 шт):
Автор решения: Проста Miha
→ Ссылка
Как стилизировать категорий при клике вы уже сами сделаете)
let options = document.querySelectorAll('.category_parent_id');
let catId = document.querySelector('#category_id');
let catName = document.querySelector('#name');
let save = document.querySelector('.btn-save');
let valId = null,
valName = null;
save.addEventListener('click', () => {
catId.value = valId;
catName.value = valName;
})
for (elem of options) {
elem.addEventListener('click', (e) => {
valId = e.target.id;
valName = e.target.innerHTML;
})
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<form method="post" action="" class="form-horizontal form-bordered">
<div class="card-body">
<div class="form-group">
<label for="name">Название категории</label>
<input type="text" class="form-control" id="name" name="name">
</div>
<div class="form-group">
<label for="parent_id">Родительская категория</label>
<button type="button" class="btn btn-primary btn-open" data-toggle="modal" data-target="#exampleModal">
Выбрать категорию
</button>
<input type="hidden" name="parent_id" value="" id="category_id">
</div>
</div>
<!-- /.card-body -->
<div class="card-footer">
<button type="submit" class="btn btn-primary">Добавить</button>
</div>
</form>
<div class="modal fade" id="exampleModal" tabindex="1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<ul style="list-style: none">
<li><a class="category_parent_id" id="1" style="cursor: pointer">Категория 1</a></li>
<li><a class="category_parent_id" id="2" style="cursor: pointer">Категория 2</a></li>
<li><a class="category_parent_id" id="3" style="cursor: pointer">Категория 3</a></li>
<li><a class="category_parent_id" id="4" style="cursor: pointer">Категория 4</a></li>
<li><a class="category_parent_id" id="5" style="cursor: pointer">Категория 5</a></li>
<li><a class="category_parent_id" id="6" style="cursor: pointer">Категория 6</a></li>
</ul>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary btn-save" data-dismiss="modal">Save changes</button>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>