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()