javascript - 有没有办法在使用 Enter 键提交表单时隐藏 native 浏览器表单输入自动完成功能

标签 javascript jquery html forms autocomplete

我想隐藏 native 浏览器自动完成功能(如果已显示)并且用户点击返回提交表单。

如果我的表单如下所示:

<form id="test-form" method="POST">
<input type="text" name="autoCompleteTestThang"/>
<button class="btn" type="submit" name="autoCompleteTestThang">Click Mee</button>

我的js是这样的:

$('#test-form .btn').click(function(event){
event.preventDefault();

// I'd be an ajax request really
console.log('Event Handled');
});

http://jsfiddle.net/7kC83/

场景:

  • 表单中的用户类型和 native 浏览器自动完成功能已填充

  • 用户按 Enter 键提交表单

  • 由于这是一个ajax调用event.preventDefault();阻止所有默认表单事件处理

  • 自动完成建议列表仍然存在,用户必须单击以取消焦点并删除...这是我不想要的。

这是否可以隐藏自动完成功能,或者我是否必须将其关闭,例如:

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

我知道我可以做到这一点并添加自定义自动完成功能。但如果我可以避免它,我希望使用 native 自动完成功能。

最佳答案

通过在提交时的输入上使用 .blur().focus(),自动完成功能会在最新版本的 Chrome 中消失。但尚未在其他浏览器中进行测试。

$('#test-form .btn').click(function(event){
    event.preventDefault();
    console.log('Event Handled');
    $('input:first').blur();
    $('input:first').focus();
});

DEMO

关于javascript - 有没有办法在使用 Enter 键提交表单时隐藏 native 浏览器表单输入自动完成功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24674772/

相关文章:

jquery - 小于选择器

javascript 重新排列 jquery 选择器排列中的数组

javascript - jqueryui 对话框无法在 firefox 11 中输入 `select()`

javascript - 从点击触发的新页面获取被点击的html元素的访问权限

javascript - 如何在 .NET 中一次性验证所有空文本

javascript - 调用 JavaScript 函数

javascript - 从 JavaScript 数组递归构建 JSON

html - 在 rails 中的标签后添加图像

javascript - Bootstrap 3 切换菜单

html - 仅 CSS : Two div with common background which change on mouse-over one of them