去除输入框自动完成的方法

4
我需要一个文本输入框,它不使用自动完成功能 - 如果用户之前提交过表单,则他的先前提交不应在再次输入表单时出现,即使他再次输入相同的内容。据我所知,有几种方法可以做到这一点:
1. <form autocomplete="off">。但是,我认为这是一个专有标签,我不确定它在各个浏览器上的兼容性。
2. 给输入字段一个随机的“名称”。甚至可以使用JS在提交之前将名称设置回预期值。然而,如果用户没有安装JS,您需要另一个带有名称的隐藏输入 - 并且另一侧的php代码会很快变得混乱。
你知道其他方法吗?其中一种方法是“接受”的方法吗?评论?
谢谢, Mala
4个回答


1

使用随机名称。你可以用简单的服务器和客户端来满足你的无JS要求。


0

在输出表单之前,您可以将原始名称和更改后的名称存储在$_SESSION变量中,在用户提交后,只需从那里获取名称:

$random_name = md5('original_name' . time());
$_SESSION['original_name'] = $random_name;

...output form...

提交后,您可以使用$_SESSION变量轻松从$_POST中获取值:

$field_value = $_POST[$_SESSION['original_name']];

只要在任何处理之前调用session_start(),确保您有可用的会话。


0

自动完成是浏览器自行决定要做的事情,因此肯定没有规范文档可供参考。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接