2016-08-12 51 views
0

在常规文本输入字段中,我希望通过双击它来查看我在铬中输入的内容的历史记录。文本输入字段不能使用铬字段历史记录

我们有一些字段在Angular JS的页面上呈现。但是,他们从来没有任何历史记录,双击也不会显示任何结果。

在简短测试中,似乎添加name属性不会恢复此功能。

这是因为该字段从未正式通过表单元素提交?如果是这样,这怎么解决?

我在google上能找到的这个问题的所有结果都与反例有关,其中“off”被忽略。

编辑:这里是一个例子。如果我发送POST请求,但可以将该值添加到历史记录中,但不能添加到未在表单中提交的字段中:https://jsfiddle.net/gtuzy4p2/2/

这里还有一个指向规范的链接,详细说明如何使用该属性,而不是浏览器应该如何保存值。 https://html.spec.whatwg.org/multipage/forms.html#autofill

回答

1

正如您已经注意到的,该规范没有指定浏览器应该如何以及何时自动记住表单值。这意味着浏览器可以以任何他们想要的方式进行操作,而且不能依赖于特定的行为。在这种情况下,Chrome和其他许多浏览器都会提交表单作为保存输入值的唯一线索。

如果您想确保某种行为,请查看datalist element。下面是一个例子,从链接维基页面直接复制:

<label>Choose a browser from this list: 
 
<input list="browsers" name="myBrowser" /></label> 
 
<datalist id="browsers"> 
 
    <option value="Chrome"> 
 
    <option value="Firefox"> 
 
    <option value="Internet Explorer"> 
 
    <option value="Opera"> 
 
    <option value="Safari"> 
 
    <option value="Microsoft Edge"> 
 
</datalist>

使用JavaScript,您可以编写自己的逻辑来以前输入的值存储到local storage,然后动态填充那些datalist在稍后的页面加载时的值。大多数(如果不是全部的话)支持datalist的浏览器也会自动完成其元素,如果不是,用户可以简单地从下拉列表中选择一个。

相关问题