我需要一个不使用自动完成功能的文本输入字段 - 如果用户之前已经提交过表单,那么他以前提交的内容应该会在他再次输入表单时出现,即使他输入相同的内容再次。据我所知,有几种方法可以做到这一点:
1。 <form autocomplete="off">
的
但是,我认为这是一个专有标签,我不确定它与浏览器的兼容性
2。为输入字段提供随机的“名称”
甚至可以使用JS在提交之前将名称设置回预期值。但是,如果用户没有安装JS,则需要另一个带有名称的隐藏输入 - 另一方面的php代码会变得很乱。
你知道其他任何方式吗?这些方式之一是“接受”的方式吗?评论
谢谢,
马拉
答案 0 :(得分:5)
答案 1 :(得分:1)
坚持使用随机名称。你只需要足够的服务器和客户端就可以满足你的no-js要求。
答案 2 :(得分:0)
您可以在输出表单之前将原始名称和更改后的名称存储在$_SESSION
变量中,在用户提交后,只需从中获取名称:
$random_name = md5('original_name' . time());
$_SESSION['original_name'] = $random_name;
...output form...
提交后,您可以使用$_POST
变量轻松获取$_SESSION
的值:
$field_value = $_POST[$_SESSION['original_name']];
在进行任何处理之前,请确保通过调用session_start()
来确保会话可用。
答案 3 :(得分:0)
自动填充是浏览器决定自己完成的事情,因此肯定没有要查看的规范文档。