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);
}