Fix: количество — только целое 0–99 (модели, формы, JS)
Made-with: Cursor
This commit is contained in:
@@ -112,11 +112,16 @@
|
||||
function parseNum(s) {
|
||||
return parseFloat(String(s).replace(/\s/g, '').replace(',', '.')) || 0;
|
||||
}
|
||||
function parseQty(s) {
|
||||
var n = parseInt(String(s).replace(/\s/g, ''), 10);
|
||||
if (isNaN(n) || n < 0) return 0;
|
||||
return n > 99 ? 99 : n;
|
||||
}
|
||||
|
||||
function updateRowAmounts() {
|
||||
document.querySelectorAll('#order-items .item-row').forEach(function(row) {
|
||||
var priceInput = row.querySelector('input[name$="-price"]');
|
||||
var qty = parseNum(row.querySelector('input[name$="-quantity"]')?.value);
|
||||
var qty = parseQty(row.querySelector('input[name$="-quantity"]')?.value);
|
||||
var price = parseNum(priceInput?.value);
|
||||
var el = row.querySelector('.row-amount');
|
||||
if (el) el.textContent = formatNum(price * qty);
|
||||
@@ -143,6 +148,10 @@
|
||||
var n = parseNum(e.target.value);
|
||||
e.target.value = isNaN(n) ? '' : formatNum(n);
|
||||
}
|
||||
if (e.target.name && e.target.name.indexOf('-quantity') !== -1) {
|
||||
var q = parseQty(e.target.value);
|
||||
e.target.value = String(q);
|
||||
}
|
||||
});
|
||||
|
||||
updateRowAmounts();
|
||||
@@ -199,6 +208,8 @@
|
||||
el.value = '';
|
||||
}
|
||||
});
|
||||
var qtyInput = clone.querySelector('input[name$="-quantity"]');
|
||||
if (qtyInput) qtyInput.value = '1';
|
||||
var amountCell = clone.querySelector('.row-amount');
|
||||
if (amountCell) amountCell.textContent = '—';
|
||||
tbody.appendChild(clone);
|
||||
|
||||
Reference in New Issue
Block a user