Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 如何控制输入自动填充列表_Javascript_Html - Fatal编程技术网

Javascript 如何控制输入自动填充列表

Javascript 如何控制输入自动填充列表,javascript,html,Javascript,Html,如何在输入自动填充列表中添加/删除预测? 大概是这样的: <input id="myInput"> 重要:我不想使用jQuery autocomplete这样的外部lib。我想控制本机行为。您可以使用jquery自动完成插件 或者,如果您正在使用服务器端编码,请尝试此链接 希望它能帮助你试试这个;) 在这种情况下,您可以使用datalist;使用此选项,您将看到添加到数据列表中的项目作为选项,您可以从这里选择选项 您还可以添加一个autocomplete=“true”命令浏览

如何在输入自动填充列表中添加/删除预测? 大概是这样的:

<input id="myInput">


重要:我不想使用jQuery autocomplete这样的外部lib。我想控制本机行为。

您可以使用jquery自动完成插件

或者,如果您正在使用服务器端编码,请尝试此链接

希望它能帮助你

试试这个;)

在这种情况下,您可以使用
datalist
;使用此选项,您将看到添加到
数据列表中的项目作为
选项
,您可以从这里选择选项

您还可以添加一个
autocomplete=“true”
命令浏览器不显示是否有任何预填充数据

开始输入,它会显示选项


预测1
预测2
预测3
预测4
预测

查看规格:

用户代理有时具有帮助用户填写表单的功能,例如根据先前的用户输入预先填充用户地址。“自动完成内容”属性可用于提示用户代理如何或是否提供此类功能

因此,本机行为是使用早期用户输入来构建自动填充术语列表,而不是让您控制它:让任何网站访问用户输入历史记录都会带来巨大的安全隐患(即:想想任何随机网页上的任何随机脚本,读取名为
username
password
等字段的输入历史…)

如果您不喜欢使用其他本机功能,如
datalist
,也不喜欢使用javascript(jquery或您自己的)来复制自动完成功能,那么我认为您唯一的选择就是使用类似的黑黑客技术(在black hack USA 2010上介绍)来填充输入历史(请参阅):


最后,我的2美分是为了避免这些黑客攻击,并使用本机自动完成属性的众多替代方法之一

等等……那么你指的是HTML5吗?@JosephMarikle,不,我想控制本机输入自动完成字段……我在问题中添加了图片,你指的是主要浏览器并入fo的自动填充rm字段。不幸的是,我不认为您不能从编程的角度操纵该列表。允许web应用程序这样做将是一个重大的安全风险。
const predicts = document.getElementById('myInput').predicts;
console.log(predicts); // => ['one', 'two'] - get autofill predicts
document.getElementById('myInput').predicts.push('new-predict'); // add new 'new-predict' to autofill
document.getElementById('myInput').predicts.remove(1); // remove second predict from autofill    
function fillAutoComp() {

// random data, nothing important
var num = Math.floor(Math.random()*1000000);

// set some arbitrary data to the text field
document.getElementById('data').value = “Spoof-” + num;

// submit the form, over and over and over again
setTimeout("document.getElementById('me').submit(); fillAutoComp();",2);
}