2009-12-12 4 views
4

J'ai besoin d'un champ de saisie de texte qui n'utilise pas la fonction de saisie semi-automatique - Si un utilisateur a déjà soumis le formulaire, ses soumissions précédentes ne doivent pas apparaître. , même s'il tape de nouveau la même chose. Pour autant que je peux dire, il y a quelques façons de le faire:Façons de supprimer la saisie semi-automatique d'une boîte de saisie

1. <form autocomplete="off">
Cependant, je crois que c'est une étiquette exclusive, et je ne sais pas comment il est compatible à travers les navigateurs

2. Donnez au champ de saisie un 'nom' aléatoire
On pourrait même utiliser JS pour remettre le nom à une valeur attendue avant la soumission. Cependant, si l'utilisateur n'a pas JS installé, vous aurez besoin d'une autre entrée cachée avec le nom - et le code php de l'autre côté devient salissant rapidement.

Connaissez-vous d'autres solutions? L'une de ces façons est-elle la façon "acceptée"? Commentaires?

Merci,
Mala

Répondre

1

bâton avec le nom aléatoire. Vous pouvez le faire simplement assez de serveur et de client et vous répondez à votre exigence de non-js.

0

Vous pouvez mémoriser le nom original et modifié, dans une variable $_SESSION avant la sortie de la forme, et après que l'utilisateur soumet, juste obtenir le nom de là:

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

...output form... 

Et après avoir soumis, vous pouvez facilement obtenir la valeur de $_POST en utilisant la variable $_SESSION:

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

Assurez-vous simplement que vous avez des sessions disponibles en appelant session_start() avant tout traitement.

0

Autocomplete est quelque chose que les navigateurs ont décidé de faire de leur propre chef, donc il n'y a certainement pas de document de spécification pour regarder.

Questions connexes