似たようなコードフラグメントが異なる方法で機能するのはなぜですか?
<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
または10
を入力すると、スクリプトは入力をに更新します10
。
2.if
2番目のバリアントは、期待どおりに機能します。入力値は、ステートメントの数値よりも大きい場合にのみ置き換えられます。
$('input').keyup(function(e) {
var $this = $(this);
option = $this.attr('data-value-max');
val = $this.val();
if (val > 10){ // ←---
e.preventDefault();
$this.val(option);
}
});
では、なぜ最初のバリアントが常に入力値を置き換えるのか理解できませんか?