【问题标题】:Prevent from auto fill form data防止自动填写表单数据
【发布时间】:2013-08-31 17:19:18
【问题描述】:
我遇到了与自动填写表格有关的问题。
实际上,我正在运营一个信托慈善网站,该网站从捐赠者那里收集资金。
问题:
当我为一个原因输入捐款时,我想再次为同一原因输入捐款,但信用卡详细信息不同。
然后我很奇怪,我需要输入与卡片相关的详细信息的表格保留了之前捐赠的所有信息,因此所有内容都已输入。
我在表单和输入中都尝试过autocomplete="off"。
【问题讨论】:
标签:
php
jquery
html
wordpress
autocomplete
【解决方案1】:
如果这是谷歌浏览器,那么它实际上有一个功能,它会忽略当前网络表单中的自动完成设置,实际上会从它自己的“个人程序缓存”中提取数据,并为您填充字段以方便使用。它在识别地址字段时也会这样做。 Thomas Martin Klein 的答案可能效果最好,但我之前没有测试过,所以 Chrome 可能足够聪明,可以识别你的算法。祝你好运!
【解决方案2】:
尝试在表单元素的 id 或名称的开头或结尾添加唯一标识符。
另外还有这个:
autocomplete = ”off” 不是 XHTML 过渡的有效标记,
这是一个常见的 DOCTYPE。使用它来保持有效的标记
来自
if (document.getElementsByTagName) {
var inputElements = document.getElementsByTagName(“input”);
for (i = 0; inputElements[i]; i++) {
if (inputElements[i].className && (inputElements[i].className.indexOf(“disableAutoComplete”) != -1)) {
inputElements[i].setAttribute(“autocomplete”, ”off”);
}
}
}
来自http://css-tricks.com/snippets/html/autocomplete-off/
【解决方案3】:
重命名每个页面加载的输入。生成前缀,并将其放在表单中的隐藏字段中。
$prefix = date("U"); //lets use unix time for this.
...
<input type="hidden" name="prefix" value="<?php echo $prefix; ?>"/>
<input type="text" name="<?php echo $prefix; ?>_cardnumber" />
...
并且在处理时寻找
$_POST[$_POST['prefix'].'_cardnumber']