我有两个输入,它们一起形成一个单一的语义单元(想想小时和分钟输入一起形成时间输入)。如果两个输入都失去焦点,我想调用一些 Javascript 函数,但如果用户只是在这两个输入之间跳转,我不想触发任何东西。
我试过将这两个输入包装在一个 div 中并向 div 添加一个 onBlur,但它永远不会触发。
接下来我尝试将 onBlurs 添加到两个输入并让它们通过 jQuery 检查另一个的 :focus 属性,但似乎当 onBlur 触发下一个元素还没有收到焦点。
关于如何实现这一目标的任何建议?
编辑:有人质疑这样做的目的。我想根据这两个输入包含的值更新其他一些字段,但理想情况下,如果用户仍在更新第二个输入的过程中(例如,如果从第一个输入到第二个输入的用户选项卡)。
var focus = 0;
$(inputs).focus(function() { focus++ });
$(inputs).blur(function() {
focus--;
setTimeout(function() {
if (!focus) {
// both lost focus
}
}, 50);
});
Run Code Online (Sandbox Code Playgroud)