我的JavaScript存在问题

时间:2014-07-28 21:40:06

标签: javascript html

我不知道我的剧本会发生什么,我可以指出我的错误在哪里。 1到9所有条件工作正常,但当你把10-12不工作

<form method="post" enctype="multipart/form-data" action="#">
<input type="hidden" value="2" id="itemstock" name="itemstock">
<input value="1" name="quantity" id="quantity" class="text">
<button type="submit" onClick="return checkoption();" >Click </button>
</form>

的Javascript

function checkoption()
{
    var itemqty = document.getElementById('quantity');
    var iss = document.getElementById('itemstock');

    if(itemqty.value > iss.value)
    {
        alert('We have Currently '+iss.value+' In Stock');
    }
    else
    {
        alert('add to cart'); 
    }
}

提前谢谢

屏幕短看看我输了13但是没有显示错误

enter image description here

2 个答案:

答案 0 :(得分:5)

使用带字符串的<>运算符会按字母顺序比较值,这可能不是您想要的。

您需要将这些数字作为数字进行比较,而不是字符串。 JavaScript允许您使用+轻松字符串转换为数字,如下所示:

var qty = +itemqty.value;
var isv = +iss.value;

if(qty > isv)
{
  // ...
}

但是,如果要在代码中添加更多错误检查,还可以使用parseInt(如果值无效,将返回NaN)。

答案 1 :(得分:0)

.value等文本字段的input属性是字符串,而不是数字。因此,您按字典顺序比较字符串。通过parseInt(str, 10)+str将其更改为数字。