使文本输入字段记住先前输入的数据

125*_*748 11 html javascript css jquery

我的文本输入似乎不记得以前输入过的值.例如,许多网站,我甚至没有帐户,但有,例如,之前输入我的电子邮件地址(购买火车票作为"客人")给我一个下拉列表与我用过的电子邮件地址在过去.然而我的形式并没有这样做.它迫使我每次都要完全打字.似乎是这个问题的反面..

我有简单的输入 <input type="text" id="firstName" placeholder="First name" />

并且他们用简单的jquery ajax帖子提交.像这样的东西.然而,在这个例子中,ajax没有在jsbin上工作,我只是展示它来演示我的基本结构.有这个jquery插件吗?我可以用任何方式控制这种看似浏览器驱动的行为.谢谢.

geo*_*las 16

在大多数浏览器中,您可以通过为输入指定名称,使浏览器显示先前在输入字段中输入的值.例如:

<input type="text" id="firstName" placeholder="First name" name="firstName" >
Run Code Online (Sandbox Code Playgroud)

如果该字段没有name属性,则浏览器不会显示建议.

还要检查javascript是否阻止了提交时的默认操作.

  • 这仍然是真的吗?看来浏览器现在有更多的自动填充启发式方法 (3认同)

小智 6

我有同样的问题.对我来说,就是在ASP.NET MVC中进行开发时.无论如何,我必须做的解决方案是一系列的事情:

1)在我的输入标签中定义name属性

2)autocomplete="on"在我的输入标签中

3)将按钮标签更改为type="submit"标签

4)将所有输入控件包含在<form>标签中

如果你遇到困难,试一试,希望它会帮助你:)

干杯,

杰夫莫雷蒂


han*_*rik 5

一些浏览器坚决拒绝记住输入,直到我通过(ab)使用 localStorage“手动记住它”......这对我有用:

    {
        // hack to remember last error id on page refresh
        // can't believe i have to do this, but my browser don't want to remember it itself, 
        // ... not sure why
        let errorid_element=document.querySelector("#errorlog_id");
        let rememberHack=function(){
            localStorage.setItem("last_id_remember_hack",errorid_element.value);
        };
        errorid_element.addEventListener("input",rememberHack);
        errorid_element.addEventListener("change",rememberHack);
        errorid_element.value = localStorage.getItem("last_id_remember_hack");
    }
Run Code Online (Sandbox Code Playgroud)

  • 这是一个稳定可靠的解决方法 =) (2认同)

And*_*mes 2

它可能会根据浏览器和用户隐私设置和排序而有所不同,并且默认情况下应该处于打开状态,但请尝试添加autocomplete="on"到您的输入标签。

  • autocomplete="on" 应该是默认值。如果浏览器不记得了,我们就无法覆盖它 (2认同)