我有一个 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/