如何使用 TAB 键和输入字段上的“onchange”处理事件

问题描述 投票:0回答:0

在输入字段上我有一个“更改”事件,这个事件发送一个ajax请求,如果返回错误,这个错误被注入到页面顶部的html中。 但是,如果我按下“TAB”键,光标会自动聚焦到下一个输入字段,就像在“更改”事件之前发送 TAB 事件一样,屏幕不会在出现错误消息时滚动到页面顶部。

有什么办法可以解决吗?还是我以错误的方式使用“更改”,也许最好改用“keydown”?

addListenerField = function() {
    $('#elementInput').keydown(function(e){
        if(e.key === 'Tab') {
            e.preventDefault();
            $(this).trigger('change');
            myFunctionThatDispatchOnChange();
        }
    });
},

我这样做了,处理了“TAB”键,但现在的问题是:当我点击页面的任何地方时运行这个监听器后,“onchange”事件被调度。我认为这是正常行为,因为字段值发生了变化。但是我如何防止这种行为呢?我的函数“myFunctionThatDispatchOnChange”已经被调用了,那样会被再次调用。

javascript ajax
© www.soinside.com 2019 - 2024. All rights reserved.