1
入力の値が変更されたかどうかを自動的に検出する属性(たとえば、markChanges = 'true')を作成する必要があります。入力がフォーカスされていないときに入力値の変化をキャッチ
(値はもちろんのjsのコードから変更することができます)
私はそれをどのように行うのでしょうか?
入力の値が変更されたかどうかを自動的に検出する属性(たとえば、markChanges = 'true')を作成する必要があります。入力がフォーカスされていないときに入力値の変化をキャッチ
(値はもちろんのjsのコードから変更することができます)
私はそれをどのように行うのでしょうか?
唯一の解決策のように思えるのは、ポーリングすることです。つまり、setInterval()
を使用する必要があります。例としてthis fiddleをご覧ください。コードは
function detectChange(input, interval) {
var previous = "";
setInterval(function() {
var val = $(input).val();
if ( val != previous) {
previous = val;
alert("Input has changed");
}
}, interval);
}
detectChange("input", 100);
setTimeout(function() {
$("input").val("some value!");
}, 4000);
値をポーリングすることなく変更を検出する方法はありません。よりエレガントな方法がなければならない...いいえ? –
動的に値を変更しない場合あなたが持っているのは '.change()'だけですが、それは 'focus'に基づいています。それが言われると、あなたの入力値を変更する何かがあるはずです。つまり、入力が自分自身の変更を検出するのではなく、その関数にジョブを委任することができます。 – vinceh
ええ、しかし、私は他の入力の値を変更する入力の* lot *を持っているので、私のコードはむしろ乱雑になります。 –