Я создал этого твари, которая нуждается в некоторой проверке:
Это файл home.html:
<!-- Modal -->
<div id="vasoModal" class="modal">
<div class="modal-content">
<h4 class="modal-title">Vasito</h4>
<h6>Seleccione hasta dos gustos</h6>
<form th:action="@{/pedido}" name="vasitoForm" method="post">
<table class="tabla">
<tr th:each="gusto : ${gustos}">
<td class="flavour" th:text="${gusto.nombre}"></td>
<td><input class="single-checkbox" type="checkbox" th:field="${gusto.id}"/></td>
</tr>
</table>
<button type="submit" class="btn-submit">Enviar Pedido</button>
</form>
</div>
</div>
Итак, теперь мне нужно проверить, какие из них были нажаты, и отправить это контроллеру для проверки:
var checkboxes = document.querySelectorAll('.single-checkbox');
var clicked = [];
checkboxes.forEach(elem => {
elem.addEventListener('click', (event) => {
event.stopPropagation();
alert(elem.value);
// My logic here was to add the clicked checkboxes to the clicked array and then send that to the controller to validate !!
Это окей?});});
Хорошо ... У меня здесь две проблемы ... Первая из них заключается в том, что эта строка в HTML не работает:
th:field="${gusto.id}"
Я не могубыть в состоянии привязать id каждого "gusto" (аромата на испанском) к флажкам (это казалось хорошим решением).
Я получаю следующую ошибку:
Ни BindingResult, ни простой целевой объект для имени bean-компонента 'gusto' не доступны в качестве атрибута запроса
Хорошо ... Я нашел это в Google и нашел решение, но не в моем случае.отправляю ArrayList "gustos" на представление в контроллере.
@RequestMapping(value = "/")
public String getAllProductos(ModelMap modelMap){
List<Producto> productos = productoService.findAll();
List<Gusto> gustos = gustoService.findAll();
modelMap.put("gustos", gustos);
modelMap.put("productos", productos);
return "home";
}
Так что эта проблема немного странная!
Ну ... вторая проблема или вопрос, эточто я хочу сделать после решения этого ... это прокомментировано в файле JS:
// Моя логика заключалась в том, чтобы добавить отмеченные флажки в массив, в который нажали, и затем отправить это контроллеру впроверить !!
Это подход окей ??Может кто-нибудь помочь мне найти лучшее решение для ошибки флажков ??
...