Javascript:阻止浏览器在按下向下键时显示字段的输入历史记录

Javascript: Prevent browser to display input history for a field on press of down key

本文关键字:显示 字段 记录 历史 输入 浏览器 Javascript      更新时间:2023-09-26

是否有任何方法可以防止浏览器在按下向下键时显示先前输入的字段值?

如果这不可能,我的另一个问题是按下向下键,将显示以前输入的值的列表,按下TAB键,将选择列表上当前突出显示的值,并将其设置为字段的值。我不想这样,我只想把焦点传递给下一个输入元素,而不选择任何值。

有什么方法可以覆盖浏览器行为吗?尽管jQuery解决方案也很好,但javascript是首选的解决方案。谢谢

只需添加自动完成属性

<input type="text" autocomplete="off" />

您可以通过在输入标记上添加autocomplete="off"来禁用自动完成。MDN参考

示例

<input type="text" name="email" value="" autocomplete="off" />

有关浏览器兼容性,请参阅此Stack Overflow帖子。

html代码

<input type="text" autocomplete="off" id="password-field" class="form-control"  name="multi_user_pin" placeholder="Type your PIN here"/>
jquery code
$('#password-field').on('input keydown',function(e) { 
            if(e.keyCode == 8 && $(this).val().length==1) {
                $(this).attr('type', 'text');
                $(this).val('');
             }
            else{
                if ($(this).val() !== '') {
                    $(this).attr('type', 'password');
                } else {
                    $(this).attr('type', 'text');
                }
             }
        });

此代码适用于密码字段,以防止在所有浏览器中记住其历史记录