Jquery if语句失败

时间:2013-10-12 15:43:16

标签: javascript jquery if-statement

我有以下输入标记:

<input id="item_amount" type="text" id="item_stk" placeholder="1" value="" class="input-small" placeholder="" style="float: left;">

现在为了确保这个输入字段值小于一定数量我做了以下Jquery函数:

var max_amount = $('#max_amount').val();

$( "#item_amount" ).keyup(function() {
       if($(this).val() > max_amount){
        $(this).val( max_amount);
    }
});

现在最大值设置为2

如果我在输入字段中写入4,它会正确地将值返回到2。

然而,如果开始写1然后2然后3然后4等。然后它永远不会进入if语句并重置值。

即。输入字段的值现在是1234(远远超过2)。

那么我做错了什么?

2 个答案:

答案 0 :(得分:3)

目前,您正在比较字符串,并且比较不是数字:"10" < "2"

您需要解析值:

var max_amount = parseFloat($('#max_amount').val());
if (parseFloat($(this).val()) > max_amount){

答案 1 :(得分:1)

确保输入的类型为number

<input type="number" step="any" id="max_amount" />

然后执行parseFloat($('#max_amount').val())将字符串转换为实际的十进制值。

当然,必须将所有输入视为数字。

最好使用type="number",这样您就不必担心在调用isNaN时代码中的parseFloat测试。

希望有所帮助。