开发者

Ways to remove the autocomplete of an input box

开发者 https://www.devze.com 2022-12-13 17:44 出处:网络
I need a text input field which does not use the autocomplete function - If a user has submitted the form before, his previous submissions should -not- appear as he types into the form again, even if

I need a text input field which does not use the autocomplete function - If a user has submitted the form before, his previous submissions should -not- appear as he types into the form again, even if he is typing the same thing again. As far as I can tell, there are a few ways to do this:

1. <form autocomplete="off">

开发者_开发技巧However, I believe this is a proprietary tag, and I am not sure how compatible it is across browsers

2. Give the input field a random 'name'

One could even use JS to set the name back to an expected value before submission. However, if the user does not have JS installed, you'd need another hidden input with the name - and the php code on the other side gets messy fast.

Do you know of any other ways? Is one of these ways the "accepted" way? Comments?

Thanks,

Mala


Lookie here: Is there a W3C valid way to disable autocomplete in a HTML form?


Stick with the random name. You can do it simply enough server and client and you meet your no-js requirement.


You can store the original and changed name in a $_SESSION variable before outputting the form, and after the user submits, just get the name from there:

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

...output form...

And after submitting you can easily get the value from $_POST using the $_SESSION variable:

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

Just be sure that you have sessions available by calling session_start() before any processing.


Autocomplete is something that browsers decided to do on their own, so there’s certainly no spec document to look at.

0

精彩评论

暂无评论...
验证码 换一张
取 消