2012-02-13 15 views
11

Eventuali duplicati:
Is there a W3C valid way to disable autocomplete in a HTML form?Come impedire al browser di ricordare il contenuto del campo di testo?

C'è un modo per evitare che un browser di non ricordare il contenuto di un campo di testo? Il problema è che il campo contiene un valore come 100, e quindi viene aggiunto un simbolo di valuta come € che lo rende 100 €. Se clicco sul campo, il mio widget rimuoverà la valuta e potrò modificare il numero nudo, e quando sfocandolo visualizzerò di nuovo la valuta. Tutto funziona bene fino a quando non si preme F5 e quindi si finisce per avere 100 € € perché il browser ha ripristinato il valore originale 100 € che aveva quando si è verificato il ricaricamento e il widget lo ha riaggiunto.

+1

Intendi qualcosa come "AUTOCOMPLETE = OFF' nel tuo input? –

+0

Il browser non dovrebbe salvare nulla in alcun campo di input su un aggiornamento in primo luogo ... Ma se è necessario, aggiungi un po 'di jquery al tuo codice. '$ ('# input)'. Val ('');' che cancellerà il valore nel campo. –

+1

@stumpx Molti browser moderni lo fanno, in particolare Firefox ... – Christoph

risposta

17

Per i browser che lo supportano, c'è il nuovo autocomplete attribute. Dal collegamento:

L'attributo autocomplete è un attributo enumerato. L'attributo ha tre stati. Le mappe delle parole chiave on allo stato nello stato e le mappe delle parole chiave allo stato allo stato. L'attributo può anche essere omesso. Il valore mancante è lo stato predefinito predefinito.

Lo stato off indica che i dati di input del controllo sono particolarmente sensibili (ad esempio il codice di attivazione per un'arma nucleare); o che si tratta di un valore che non verrà mai riutilizzato (ad esempio una chiave one-time per un accesso bancario) e l'utente dovrà quindi inserire esplicitamente i dati ogni volta, invece di poter fare affidamento sulla UA per eseguire il prefill. il valore per lui; o che il documento fornisce il proprio meccanismo di completamento automatico e non desidera che l'interprete fornisca valori di completamento automatico.

... anche se nel caso specifico che descrivi, penso che probabilmente terrei il simbolo € al di fuori del valore del campo in primo luogo. Puoi metterlo vicino al campo o sovrapporlo sul campo usando CSS (ad esempio, mettilo dopo il campo nel markup e poi usa position: relative; left: -3em, quel genere di cose). Ma se vuoi davvero impedire il riempimento automatico del browser, lo autocomplete è uno strumento per il toolchest.

+2

@rFactor: Sì. E spero davvero che usino il 'POST' per quella forma. Altrimenti, questo è un diavolo di un effetto collaterale sul pulsante posteriore ... ;-) –

Problemi correlati