在输入字段上我有一个“更改”事件,这个事件发送一个ajax请求,如果返回错误,这个错误被注入到页面顶部的html中。 但是,如果我按下“TAB”键,光标会自动聚焦到下一个输入字段,就像在“更改”事件之前发送 TAB 事件一样,屏幕不会在出现错误消息时滚动到页面顶部。
有什么办法可以解决吗?还是我以错误的方式使用“更改”,也许最好改用“keydown”?
addListenerField = function() {
$('#elementInput').keydown(function(e){
if(e.key === 'Tab') {
e.preventDefault();
$(this).trigger('change');
myFunctionThatDispatchOnChange();
}
});
},
我这样做了,处理了“TAB”键,但现在的问题是:当我点击页面的任何地方时运行这个监听器后,“onchange”事件被调度。我认为这是正常行为,因为字段值发生了变化。但是我如何防止这种行为呢?我的函数“myFunctionThatDispatchOnChange”已经被调用了,那样会被再次调用。