2009-12-12 4 views
4

Мне нужно текстовое поле ввода, которое не использует функцию автозаполнения. Если пользователь отправил форму раньше, его предыдущие представления не должны появляться, когда он снова вводит в форму , даже если он снова набирает одно и то же. Насколько я могу судить, есть несколько способов сделать это:Способы удаления автозаполнения окна ввода

1. <form autocomplete="off">
Однако, я считаю, что это собственный тег, и я не знаю, как это совместимо во всех браузерах

2. Дайте поле ввода случайное «имя»
Можно даже использовать JS, чтобы вернуть имя до ожидаемого значения перед отправкой. Однако, если у пользователя нет установленного JS, вам понадобится еще один скрытый ввод с именем - и php-код с другой стороны станет беспорядочным.

Знаете ли вы о других путях? Является ли один из этих способов «принятым» способом? Комментарии?

Спасибо,
Мала

ответ

1

Палка со случайным именем. Вы можете сделать это просто достаточно сервера и клиента, и вы отвечаете требованиям no-js.

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() перед любой обработкой.

0

автозаполнения является то, что браузеры решили сделать сами по себе, так что, конечно, не спец документ смотреть.

Смежные вопросы