2014-09-11 12 views
5

Ich erstelle Formulareingaben mit dem CakePHP Form Helper und einige Eingaben (die meiste Zeit 'Benutzername' und 'Passwort') werden auf Aktionen, Login-Aktionen, etc .. automatisch vervollkommnet ist nervig. Ich nehme an, diese sind nur häufiger, also verwendet der Browser seine Cookies, um zu versuchen, die Eingaben zu vervollständigen.Deaktivieren Sie die automatische Vervollständigung in CakePHP Formular Eingabefeld

Anyways .. wie deaktiviere ich das?

Aus meiner Sicht:

... 

echo $this->Form->input('username', array(
    'label' => 'Please enter your username', 
    'class' => 'pure-u-1-2' 
)); 
echo $this->Form->input('password', array(
    'label' => 'Please enter your password', 
    'class' => 'pure-u-1-2' 
)); 

... 

Was bin ich?

+0

nicht als doppelte Kennzeichnung, weil Sie für cakephp fragen, aber diese Frage zu lesen http://StackOverflow.com/Questions/2530/how-do-you-disable-browser-autocomplete-on-web-form-field-input-tag und grundlegende Kuchen Doc sollte es für Sie getan haben. – Nunser

+0

Richtig, aber ich wollte eine schnelle Referenz für CakePHP Benutzer in dieser Situation. Als ich mit dem Kuchen anfing, hatte ich damit zu kämpfen. – karns

Antwort

4

Sie können Attribute angeben, die an den Formularhelfer gesendet werden. Geben Sie das Attribut 'Autocomplete' an und setzen Sie den Wert auf 'off'.

... 

echo $this->Form->input('username', array(
    'label' => 'Please enter your username', 
    'class' => 'pure-u-1-2', 
    'autocomplete' => 'off' 
)); 
echo $this->Form->input('password', array(
    'label' => 'Please enter your password', 
    'class' => 'pure-u-1-2', 
    'autocomplete' => 'off' 
)); 

... 

, die in so etwas wie dies für die HTML-Ergebnisse:

<input name="data[Model][username]" autocomplete="off" class="pure-u-1-2" id="ModelUsername" type="text"> 

Sie können auch statt nur jeden Eingang auf der gesamten Form dies tun. Geben Sie einfach das gleiche Attribut und Wert in der Form erstellen wie folgt:

... 

echo $this->Form->create('Model', array(
    'class' => 'class', 
    'autocomplete' => 'off' 
)); 

Dies gibt Ihnen so etwas in Ihrem HTML:

<form action=".../Model/Action" class="class" autocomplete="off" id="ModelActionForm" method="post" accept-charset="utf-8"> 

HINWEIS Mehrere Browser jetzt die automatische Vervollständigung ignorieren =“ off "oder autocomplete =" false ". Die Problemumgehung besteht darin, ein verstecktes Text- und ein Kennwortfeld vor allen anderen Eingaben in Ihrem Formular zu platzieren. Die Browser füllen diese und nicht diejenigen, die Sie alleine lassen möchten.

0

Die beste Lösung ist dies die automatische Vervollständigung = new-Passwort

Es funktioniert großartig in Chrome und Firefox verwenden

Like:

$this->Form->input('password', array('type' => 'password', 'autocomplete' => 'new-password')); 
Verwandte Themen