如果小于另一个值错误超过一位数字,Javascript 将添加值

标签 javascript forms math

我有一个 javascript 函数,如果当前值小于另一个值,则该函数将在数量上加一。这是 JavaScript 函数:

function addQty()
{
    if(document.getElementById("quantity").value < document.getElementById("stock").value)
        document.getElementById("quantity").value++;
    else
        return;
}

以下是从中获取值的表单元素:

<input type='text' id="quantity" name='quantity' value ='0' />
<input type='hidden' id="stock" name="stock" value="<?php echo $adjustedStock; ?>" />

因此,基本上,只有在库存充足的情况下,用户才可以在其要订购的产品数量中添加一个。

现在,如果库存数量为 1-9,则这绝对没问题,但如果库存水平为两位数,则用户可以添加到购物篮的最大数量(即代码中的“数量”)返回为第一位数字 + 1。因此,如果库存为 13,则最大数量为 2,如果库存为 63,则最大数量为 7。

我尝试在表单中使用 $adjustedStock 的整数值之前将其转换为字符串,因为我读到有时浏览器在这种情况下会表现得很奇怪,但这不起作用。有什么想法为什么会发生这种情况吗?

提前致谢!

最佳答案

<input> 的“值”属性始终是一个字符串。因此,您的比较是在两个字符串之间进行的,这不是您想要的。

比较之前将值转换为数字:

function addQty()
{
    var qtyInp = document.getElementById('quantity'),
      qty = parseInt(qtyInp.value, 10),
      stk = parseInt(document.getElementById('stock').value, 10);

    if (qty < stk)
        qtyInp.value = qty + 1;
}

关于如果小于另一个值错误超过一位数字,Javascript 将添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11348683/

相关文章:

javascript - 无法访问数组的任何索引,但完整登录后数组可以正常工作

php - 如何在 laravel 4 中设置表单输入所需的属性

将负数向量提升为 R 中的分数指数

c++ - C/C++ 中大型非稀疏非方矩阵的多线程乘法

javascript - 播放两个音频文件:同步客户端还是合并服务器端?

javascript - 如何为react-datepicker将UTC日期转换为 "MM/DD/YYYY"?

javascript - 通过socket从js客户端向py服务器发送数据不起作用

php - 删除 POST 数据,使后退按钮不会显示文档已过期

forms - 提交表单 angularjs 后显示所有无效字段的红色边框

Javascript 数学在函数内部是不同的