Chrome jquery onchange counterup

时间:2015-06-27 09:14:00

标签: javascript jquery html5 google-chrome

https://jsfiddle.net/76mwc1pe/

$('#xnumber').change(function() {   
if ( $('#ynumber').val()  < $('#xnumber').val() ) 
{ 
        $('#ynumber').val($('#xnumber').val());   
}
} );

如果你进入xnumber字段并使用键盘上的向上箭头,应该看到ynumber与xnumber同等增长。

这对于值很好:

  

1)从1到9,然后必须手动转到ynumber并强制它为11   值。

     

2)也可以工作到99,然后必须再次手动更改为101.

     

3)超过101,没有问题,你可以没有问题地成长。

为什么要点1)和2)?

使用Chrome测试,Firefox根本不起作用。

1 个答案:

答案 0 :(得分:2)

因为当您使用.val()时,您正在访问字符串值而不是整数。如果您将值转换为整数,它会按照您的预期工作,尽管您需要#xnumber中的起始值:

$('#xnumber').change(function() {

    if ( parseInt($('#ynumber').val(), 10)  <= parseInt($('#xnumber').val(), 10)    ) 
    { 
            $('#ynumber').val($('#xnumber').val());   
    }

    } );

JSFiddle:https://jsfiddle.net/76mwc1pe/4/

为什么我将xnumber id的输入设置为0?因为如果我们致电parseInt('', 10),它将返回NaN或“非数字”。您可以通过if

中的其他检查来解决此问题

parseInt的第二个参数是基数或基数(当然我们使用的是基数10)。

MDN:parseInt()