我有几个 <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;
}
});
但它不起作用。在 select 中选择一个值也会触发 click 事件,该事件会停止计时器。