我遇到与自动填写表单相关的问题。 实际上我正在运营一个信托慈善网站,该网站从捐赠者那里收集资金。
问题:
当我为一个原因进行捐赠时,我又想为同样的原因进行捐赠,但信用卡细节不同。 然后我很奇怪我需要输入相关细节卡的表格保留了之前捐赠的所有信息,所以输入了所有内容。
我在表单和输入中尝试了autocomplete="off"
。
答案 0 :(得分:1)
尝试在id的开头或结尾添加唯一标识符或表单元素的名称。
另外还有:
autocomplete =“off”与XHTML Transitional无效的标记, 这是一个常见的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”);
}
}
}
答案 1 :(得分:1)
重命名每个页面加载的输入。生成一个前缀,并将其放在表单中的隐藏字段中。
$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']
答案 2 :(得分:1)
如果这是谷歌浏览器,那么它实际上有一个功能,忽略当前网络表单中的自动完成设置,并实际从其自己的“个人程序缓存”中提取数据,并为方便起见填写字段。它在识别地址字段时也会执行此操作。托马斯·马丁·克莱因的答案可能效果最好,但我之前没有测试过,所以Chrome可能足够聪明,无论如何都能识别你的算法。祝你好运!