如果小于另一个值,则 Javascript 将添加到值,错误超过一位数
Javascript add to value if smaller than another value error for more than one digit
我有一个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>
的"value"属性始终是一个字符串。因此,您的比较是在两个字符串之间进行的,这不是您想要的。
在比较之前将值转换为数字:
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;
}
表单元素值是字符串。使用parseInt
或以其他方式转换为数字。
您可以使用
Math.min()
来实现此目的...
function addQty() {
var quantity = document.getElementById("quantity");
quantity.value = Math.min(+quantity.value + 1,
document.getElementById("stock").value);
}
这非常清楚地表明,您希望增加的数量或库存总额中的较小者。
相关文章:
- 运行“;非“;单击另一个函数中的函数仅一次
- 如何将从另一个文件接收的数组分配给另一个数组
- 在for循环中另一个音频结束后播放一段时间的音频
- 按钮onclick应该与参数一起重定向到另一个xhtml页面
- 如何在一个表的输入中搜索一组特定的值,而不是另一个表's id(s)值以添加css
- 如何初始化一次并将相同的值一次又一次地传递给另一个函数
- 如何使用Gulp编译并移动到另一个文件夹一堆sass文件
- 同时换掉两个Div,换成另一个Div并保持循环一段固定的秒数
- 有没有一种方法可以更改函数's来自另一个javascript函数的参数
- 一劳永逸:是否有或没有一种方法可以使用IE9+处理来自另一个域的图像
- 如何在javascript中将一个数组中的某些部分转换为另一个字符
- Android WebView:在javascript中,有没有一种方法可以加载另一个javascript文件,并为堆栈
- 一种在另一个CSS值更改时更改CSS值的方法
- 如果小于另一个值,则 Javascript 将添加到值,错误超过一位数
- JS变量范围:在一个函数中推送到一个数组并访问另一个函数
- AngularJS如何获取一个数组,该数组将数字添加到函数中的元素,然后用另一个函数分散其注意力
- 如何将一个数组从 javascript 文件写入另一个新的 js 文件
- 将特定的机密 6 位数字转换为另一个 6 位数字
- 如何在 Firefox 中单击另一个复选框时一次取消选择多个复选框
- 如果另一个已经触发,则仅触发一次