首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不影响会话历史缓存的情况下关闭自动完成

在不影响会话历史缓存的情况下关闭自动完成
EN

Stack Overflow用户
提问于 2014-08-03 22:42:00
回答 2查看 91关注 0票数 2

我想

(1)在输入字段时不向用户显示任何建议。

这可以像这样完成:

代码语言:javascript
复制
<input autocomplete="off">

但是我注意到这也是

(2)禁用历史记录缓存,例如,当您转到另一个站点并单击历史记录后退按钮时,输入字段将为空。

你可以在这里尝试一下:

http://jsfiddle.net/LC53F/

只有插入到第一个字段中的文本才能继续转到新页面并返回。

有没有办法只起作用(1),而不起作用(2)?

EN

回答 2

Stack Overflow用户

发布于 2014-11-13 19:00:49

这个解决方案应该是可行的,但并不理想:只是分享一个想法。

我不认为你能用“自动补全”来保存历史,所以让我们试着弄点东西出来。

这里有一个想法:历史记录是基于输入的名称,所以你可以通过使用一个不常见的名称(但仍然是常量,例如:'email_fakeSuffix_194h5g48')来关闭其他站点的自动完成功能。

然后,要关闭此输入之前的值的自动完成,您可以在每次加载页面时更改其名称(即。附加一个随机数)。问题是,这样做还会关闭历史记录。

因此,的主要思想是使用一个不常见的输入名称,并在提交表单之前更改它:

  • 浏览器不会保存该值,因为名称已更改。
  • 如果您在未提交的情况下导航到另一个页面,则仍会设置该值,因为您尚未更改名称。

下面是一个使用JQuery的示例(您可以使用其他任何东西,甚至是普通的JS)

JSFiddlehttp://jsfiddle.net/vse9jx3r/

HTML

代码语言:javascript
复制
<form>
    <input id="input1" name="email_fakeSuffix_194h5g48">
    <input name="input2">
    <input type="submit">
</form>

JS

代码语言:javascript
复制
$('form').submit(function() {
    $('#input1').attr('name', 'email_fakeSuffix_194h5g48_' + Date.now());

    //SUBMIT THE FORM (MAY DO NOTHING AT ALL)

});

如果我说得不够清楚,你可以告诉我。

票数 0
EN

Stack Overflow用户

发布于 2015-11-05 04:57:58

这适用于我(使用jQuery 1.9.1):

代码语言:javascript
复制
$(function(){
    $('input[type=text]').prop('autocomplete','off');

    $('#formid').on('submit', function(e){
        $('input[type=text]').removeProp('autocomplete');
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25105791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档