Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法在使用enter键提交表单时隐藏本机浏览器表单输入自动完成_Javascript_Jquery_Html_Forms_Autocomplete - Fatal编程技术网

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中工作,这对我来说已经足够好了。威尔·马克的回答对我来说太好了!我有一个自动完成功能,在搜索框下覆盖搜索结果。