此问题已被要求输入负数,但所有答案仍然可以添加0. 在我的商店订购产品并设置数量时,0您可以免费下订单,因此最小数量应该是1。我想也许我可以禁止0使用 javascript 输入(通过防止输入破折号,这适用于负数)但是如果有人输入怎么10办?所以我需要另一个解决方案。我怎样才能做到这一点?我的输入字段:<input name="quantity" id="'.$cart['productid'].$cart['kuubkosten'].'" value="'.$cart['quantity'].'" type="number" min="1">
3 回答

蝴蝶不菲
TA贡献1810条经验 获得超4个赞
防止用户输入 0 或负数
下面的代码将阻止用户输入 0 或负值
let qty = document.querySelector("input[name='quantity']");
qty.addEventListener("change", function (event) {
if (this.value < 1) this.value = 1; // minimum is 1
else this.value = Math.floor(this.value); // only integers allowed
})
<input name="quantity" id="dummyId" value="0" type="number" min="1">
如果你不想打扰太多的 javascript,下面是一个更简洁的方法:
<input name="quantity" id="dummyId" value="0" type="number" min="1" onchange="this.value = Math.floor(Math.max(this.value,1))">
Math.floor()如果您不关心四舍五入为整数,则可以删除该位。

POPMUISE
TA贡献1765条经验 获得超5个赞
使用以下 onchange 仅授权大于等于 1 的正整数:
<input type="number" onchange="this.value = Math.max(Math.ceil(Math.abs(this.value || 1)) || 1);">
但是值仍然可以使用javascript进行编辑/转换,不要忘记在后端实现真正的控制
添加回答
举报
0/150
提交
取消