为什么看起来相似的代码片段以不同的方式工作?
<input data-value-max="10">
1.如果脚本option
来自attr
,它总是input
用option
值更新:
$('input').keyup(function(e) {
var $this = $(this);
option = $this.attr('data-value-max');
val = $this.val();
if (val > option){ // ←---
e.preventDefault();
$this.val(option);
}
});
我的意思是,如果我输入3
or 10
,脚本会将输入更新为10
.
2.if
第二个变体正如我所期望的那样工作——它仅在输入值大于语句中的数字时才替换输入值:
$('input').keyup(function(e) {
var $this = $(this);
option = $this.attr('data-value-max');
val = $this.val();
if (val > 10){ // ←---
e.preventDefault();
$this.val(option);
}
});
所以我不明白为什么第一个变体总是替换输入值?