【发布时间】:2021-02-18 18:38:55
【问题描述】:
编辑:我已经用答案更新了代码。
我有一个工作正常的增量函数。然而:
1.我想根据其中一个跨度中可用的总数设置一些限制。比如10。所以增量不能超过10。#DONE
- 另一个问题是我计划有多个行,在我保存之前,我想确保我们是否计算每行的增量,它也不应该超过 10。如果它动态减少总数(跨度)会很好。
我正在使用 ADD 按钮动态添加行,如何添加实际与当前功能一起使用的新闻行?我的行只是克隆第一个行,增量功能被禁用。
document.addEventListener('DOMContentLoaded', async function() {
document.querySelector('#addlocationdest').addEventListener('click', add);
});
function add() {
var x = 1;
var container = document.getElementById('destination');
var detail = document.getElementById('row');
var clone = detail.cloneNode(true);
clone.id = "destination" + x;
x++;
container.appendChild(clone);
}
window.addEventListener("load", () => {
let elTotalQuantity = document.querySelector("#totalqty");
let totalQuantity = parseInt(elTotalQuantity.innerHTML);
function getSumOfRows() {
let sum = 0;
for (let input of document.querySelectorAll("form .row > input.quantity"))
sum += parseInt(input.value);
return sum;
}
for (let row of document.querySelectorAll("form .row")) {
let input = row.querySelector("input");
row.querySelector(".increment").addEventListener("click", () => {
if (getSumOfRows() >= totalQuantity) return;
input.value++;
elTotalQuantity.innerHTML = totalQuantity - getSumOfRows();
});
row.querySelector(".decrement").addEventListener("click", () => {
if (input.value <= 0) return;
input.value--;
elTotalQuantity.innerHTML = totalQuantity - getSumOfRows();
});
}
});
<div id="location" class="hide">
<div class="title">Transfer details</div><br>
<div class="line padded-s">Total Quantity: <span>10</span></div>
<br>
<form>
<label>New Total Quantity at this location: <span id="totalqty">10</span></label>
<br>
<div id="destination">
<div id="row" class="row">
<button type="button" class="decrement">-</button>
<input type="text" class="quantity" value="0" readonly/>
<button type="button" class="increment">+</button>
<a>Location: </a>
<input type="text" class="location" value="0" readonly/>
</div>
</div>
</form>
<label>Total being transfer: <p id="total-sum"></p></label>
<br>
<button type="button" id="addlocationdest">ADD</button>
<button type="button" id="removelocationdest">REMOVE</button>
</div>
【问题讨论】:
-
总量的数字是动态的吗?提交表格后如果超出总数应该减少多少?难道不能不增加行数,增加时会导致实际总量溢出给定的总量?
-
是的,总数将是动态的,总数将减少,另一个分配给数据库中的特定行,但现在这并不重要。当我连续增加数字时,它会减少总数,总数仅供参考。将其视为该特定位置的当前数量
-
所以总数不是下面数字的总数,而是仍然可以分配到下面数字的总数?
-
就是这个数字将被分配,需要相应地更新
-
是否可以通过键盘将数字写入输入字段,还是只能通过按钮更改值?允许通过键盘进行更改会使其变得相当复杂,但仍有可能。
标签: javascript html increment decrement