【发布时间】:2013-02-25 13:59:46
【问题描述】:
为什么看起来相似的代码片段以不同的方式工作?
<input data-value-max="10">
1. 如果脚本从attr 获取option,它总是将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 或 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);
}
});
所以我不明白为什么第一个变体总是替换输入值?
【问题讨论】:
-
第二个代码中
val在哪里定义? -
@dystroy 错过了一行
标签: jquery