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根本无法工作。

最佳答案

因为使用.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()

09-25 17:08