いくつかの <select> フィールドがあり、それらの値が変更されたときに親フォームを自動的に送信したいのですが、1.5 秒の遅延があり、ユーザーが別の選択を開いた場合は送信を中止したいと考えています。
私はこれを試しました:
var tmr;
var timerOn = false;
function submitSearchOptions() {
$('#searchoptionsform').submit();
}
$('#searchoptionsform select').change(function() {
if (!timerOn) {
tmr = setTimeout(submitSearchOptions,1500);
timerOn = true;
}
});
$('#searchoptionsform select').click(function() {
if (timerOn) {
clearTimeout(tmr);
timerOn = false;
}
});
しかし、うまくいきません。選択で値を選択すると、タイマーを停止するクリック イベントも発生します。