繁体   English   中英

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

[英]Ways to remove the autocomplete of an input box

我需要一个不使用自动完成功能的文本输入字段 - 如果用户之前已经提交过该表单,那么他以前提交的内容应该会在他再次输入表单时出现,即使他再次键入相同的内容。 据我所知,有几种方法可以做到这一点:

1. <form autocomplete="off">
但是,我相信这是一个专有标签,我不确定它与浏览器的兼容性

2.为输入字段提供随机的“名称”
甚至可以使用JS在提交之前将名称设置回预期值。 但是,如果用户没有安装JS,则需要另一个带有名称的隐藏输入 - 另一方面的php代码会变得很乱。

你知道其他任何方式吗? 这些方式之一是“接受”的方式吗? 评论?

谢谢,
马拉

坚持随机名称。 您可以使用足够的服务器和客户端来满足您的no-js要求。

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

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

...output form...

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

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

在进行任何处理之前,请确保通过调用session_start()来确保会话可用。

自动完成是浏览器决定自己做的事情,因此肯定没有要查看的规范文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM