jQuery(JavaScript)3> 10 =真

时间:2013-02-11 16:13:53

标签: javascript jquery

从输入值中检索整数值时,jQuery似乎存在一些剥离问题。

我的代码:

    // Control the rating input field to only accept numeric values
    // -else set the values back to 0
    // For the highest value:
    $('.dsListItem .firstItem').keyup(function(){
        if (isNumber($(this).val()) && $(this).val() < $('.dsListItem .lastItem').val()) {
            console.log('FIRST: ' + $(this).val() + ' >>> ' + $('.dsListItem .lastItem').val());
            $(this).val($('.dsListItem .lastItem').val());
        }
    });
    // For the lowest value:
    $('.dsListItem .lastItem').keyup(function(){
        if (isNumber($(this).val()) && $(this).val() > $('.dsListItem .firstItem').val()) {
            console.log('LAST: ' + $(this).val() + ' >>> ' + $('.dsListItem .firstItem').val());
            $(this).val($('.dsListItem .firstItem').val());
        }
    });

Safari Inspector告诉我:

最后:11&gt;&gt;&gt; 10

最后:2&gt;&gt;&gt; 10

最后:1&gt;&gt;&gt; 10

只有0和1有效。如果10被验证为“1”,则它不应该通过1> 1。 1要么,但它确实如此。

我不明白为什么console.log()打印显示正确的整数但是当我用它计算时,10 get被转换为1。

我尝试使用($(this).val()* 1)来编号,但这并没有改变任何东西,无论如何;该值已被检查为有效的数值。

1 个答案:

答案 0 :(得分:1)

如果您确定使用的是数字值,则必须使用parseInt进行转换,这样您就可以确定Javascript也会与数字对话,而不是将数字与字符串进行比较!

我认为使用parseInt进行强制转换比使用* 1指令进行强制转换...