Заблокировать элемент button JQuery
Всем привет. По клику на кнопку все остальные кнопки в таблице button[name="Product"] должны быть заблокированы.
$(document).ready(function () {
$('#changeBack').click(function () {
$.ajax({
type: 'GET',
url: '/user/GetChange',
success: function (result) {
var count = 0;
//var s = 'Id: ' + result.id;
var s = 'Спасибо за покупкку';
s += '<table class="table">' + '<tr><td>Ваша сдача: <td><tr>';
$.each(result.$values, function (index, value) {
s += '<tr style="border-bottom: 1px solid #000;"><td> Количество монет: ' + value.quantity + ' монет по ' + value.id + '<td><tr>';
count++;
});
s + '</table>';
$('#result3').html(s);
var summ = $('#total').val(0);
//test
document.querySelectorAll('.table td.price')
.forEach(td => {
const price = parseFloat(td.dataset.price);
const bt = td.closest('tr').querySelector('button[name="Product"]');
bt.disabled = false;
});
$('.table td').each(function() {
console.log($(this).html());
});
//test
console.log(summ);
}
});
});
});
Вот Мой Js. Кнопки создаются так:
@foreach (var item in Model)
{
pirce = item.Quantity > 0 ? "price" : "priceOutOfStock";
<tr id=pirceTr>
<input type="hidden" name="id" value=@item.Id />
@*<td><input asp-for="@item.Name" value="@item.Id" name="Product" type="radio" disabled="true"></td>*@
<br />
<td>@item.Name</td>
<td class=@pirce data-price=@item.Price name="price" id="price" value=@item.Price>@item.Price</td>
<td style="width: 10%">
<button name="Product" type="submit" value="@item.Id" disabled="true"><img class="center" srcset="~/images/@item.TitleImagePath" src="@Url.Action("Purchase", "User", new {item.Id})" style="width: 128px; height: 96px; vertical-align: bottom"></button>
</td>
<td>@item.Description</td>
<td id="quantity" class="quantity" data-quantity=@item.Quantity name="quantity">@item.Quantity</td>
</tr>
}
</table>
|
const bts = document.querySelectorAll('button[name="Product"]')
bts.forEach ( bt => {
bt.addEventLisenter('click', ev => {
bts.forEach (b => b.disabled = b !== bt)
})
})
|
Цитата:
Uncaught TypeError: bt.addEventLisenter is not a function
<div class="col-md-4 col-md-offset-4">
<fieldset>
<legend>Сдача</legend>
<form asp-action="GetChange" asp-controller="User"
method="post" enctype="multipart/form-data">
<input class="btn btn-info" type="button" value="Сдача" id="changeBack" />
<br />
<span id="result3"></span>
</form>
</fieldset>
</div>
Вот кнопка. По ее нажатию Я вызываю ajax
$(document).ready(function () {
$('#changeBack').click(function () {
$.ajax({
type: 'GET',
url: '/user/GetChange',
success: function (result) {
var count = 0;
//var s = 'Id: ' + result.id;
var s = 'Спасибо за покупкку';
s += '<table class="table">' + '<tr><td>Ваша сдача: <td><tr>';
$.each(result.$values, function (index, value) {
s += '<tr style="border-bottom: 1px solid #000;"><td> Количество монет: ' + value.quantity + ' монет по ' + value.id + '<td><tr>';
count++;
});
s + '</table>';
$('#result3').html(s);
var summ = $('#total').val(0);
//test
const bts = document.querySelectorAll('button[name="Product"]');
bts.forEach ( bt => {
bt.addEventLisenter('click', ev => {
bts.forEach (b => b.disabled = b !== bt);
});
});
//test
console.log(summ);
}
});
});
});
Обнуляю сумму, и в итоге человек забрал сдачу и осталось на счете 0. Все
<td style="width: 10%">
<button name="Product" type="submit" value="@item.Id" disabled="true"><img class="center" srcset="~/images/@item.TitleImagePath" src="@Url.Action("Purchase", "User", new {item.Id})" style="width: 128px; height: 96px; vertical-align: bottom"></button>
</td>
Должны быть снова заблокированы |
Ну очепятался.
Могли бы и сами поправить Только я сразу не понял. Думал, что на нажатие на одну из кнопок name="Product, остальные должны заблокироваться. Тогда еще проще
document.querySelectorAll('button[name="Product"]').forEach (b => b.disabled = true)
|
Цитата:
|
| Часовой пояс GMT +3, время: 17:31. |