Javascript 有没有办法在使用enter键提交表单时隐藏本机浏览器表单输入自动完成
如果显示了本机浏览器自动完成功能,并且用户点击返回提交表单,我想隐藏本机浏览器自动完成功能 如果我的表格是这样的:Javascript 有没有办法在使用enter键提交表单时隐藏本机浏览器表单输入自动完成,javascript,jquery,html,forms,autocomplete,Javascript,Jquery,Html,Forms,Autocomplete,如果显示了本机浏览器自动完成功能,并且用户点击返回提交表单,我想隐藏本机浏览器自动完成功能 如果我的表格是这样的: <form id="test-form" method="POST"> <input type="text" name="autoCompleteTestThang"/> <button class="btn" type="submit" name="autoCompleteTestThang">Click Mee</button>
<form id="test-form" method="POST">
<input type="text" name="autoCompleteTestThang"/>
<button class="btn" type="submit" name="autoCompleteTestThang">Click Mee</button>
$('#test-form .btn').click(function(event){
event.preventDefault();
// I'd be an ajax request really
console.log('Event Handled');
});
情景:
- 表单中的用户类型和本机浏览器自动完成已填充
- 用户点击enter提交表单
- 因为这是一个ajax调用
event.preventDefault()代码>阻止所有默认窗体事件处理
- 自动完成建议列表仍然存在,用户必须单击以取消焦点并删除。。。这是我不想要的
<input type="text" name="noAutoComplete" autocomplete="off" />
我知道我可以这样做,并添加一个自定义自动完成。但是如果我可以避免的话,我希望使用本机自动完成。通过在提交时的输入上使用.blur()
和.focus()
,自动完成将在最新版本的Chrome中消失。但还没有在其他浏览器中测试过
$('#test form.btn')。单击(函数(事件){
event.preventDefault();
log(“事件已处理”);
$('input:first').blur();
$('input:first').focus();
});
我怀疑除了完全隐藏它之外,还有什么别的办法。每个浏览器都会以自己的方式进行操作,它们所做的在DOM中没有表示,因此您没有“钩子”来开始操作默认行为。是的,这就是我所认为的情况。好主意!自动完成将与这些事件挂钩是有道理的。似乎在firefox中工作,这对我来说已经足够好了。威尔·马克的回答对我来说太好了!我有一个自动完成功能,在搜索框下覆盖搜索结果。