У меня небольшая проблема. Это мой фрагмент HTML-кода:
<table class="table table-striped table-hover">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Quantity</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr th:each="boiler : ${boilers}">
<td th:text="${boiler.value[0].model}"></td>
<td th:text="${boiler.value[0].brand}">
<td th:text="${#lists.size(boiler.value)}"></td>
<td th:text="${boiler.value[0].price}"></td>
<td>
<form>
<input type="text" th:class="boiler_model" th:id="boiler_model"
th:value="${boiler.value[0].model}" style="width:75px;"/>
<input class="form-control" type="number" id="quantity" style="width: 80px"/>
</form>
<td>
<button type="submit" class="btn btn-primary btn_submit" th:text="Add">Add</button>
</td>
</tr>
</tbody>
</table>
это мой JQuery:
$(document).ready(function () {
$('.btn_submit').on("click", function (e) {
e.preventDefault();
var quantity = $("#quantity").val();
// var boilerModel = $(".boiler_model").val();
var boilerModel = document.getElementById('boiler_model').value;
if (quantity === 0) {
alert("You must fill the quantity");
}
else if ($.trim(boilerModel) === "") {
alert("You must choose the model");
}
else {
var productIds = [];
$.ajax({
type: "POST",
url: "/order",
data: {quantity: quantity, model: boilerModel},
success: function (data) {
window.reload();
}
});
}
});
Моя проблема в том, что когда я нажимаю кнопку, она считывает количество, но читает только первую модель, даже если она правильно напечатана на вводе. Я даже удалил «скрытый» тип, чтобы увидеть его сам.
![enter image description here](https://i.stack.imgur.com/jTDyZ.png)
Как вы можете видеть - ввод печатается правильно, но когда я отлаживаю это, контроллер всегда получает значение, равное нулю, если щелкнуть по 2-й или 3-й модели, но исправить для первой и модели, которые всегда одинаковы. Это всегда «Супер Горячая Премиум».
Не могли бы вы помочь мне изменить таблицу, чтобы она считывала ввод отдельно для каждой строки и затем отправляла его на мой контроллер?
Большое спасибо.