为了账号安全,请及时绑定邮箱和手机立即绑定

如何防止在数字输入字段中输入零或负数

如何防止在数字输入字段中输入零或负数

斯蒂芬大帝 2021-06-02 07:31:42
此问题已被要求输入负数,但所有答案仍然可以添加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()如果您不关心四舍五入为整数,则可以删除该位。


查看完整回答
反对 回复 2021-06-03
?
POPMUISE

TA贡献1765条经验 获得超5个赞

使用以下 onchange 仅授权大于等于 1 的正整数:

<input type="number"  onchange="this.value = Math.max(Math.ceil(Math.abs(this.value || 1)) || 1);">

但是值仍然可以使用javascript进行编辑/转换,不要忘记在后端实现真正的控制


查看完整回答
反对 回复 2021-06-03
  • 3 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信