2013-04-10 10 views
27

Ho un campo input che mostra un elenco utilizzando l'elemento html5 <datalist>. Il problema è che con <datalist> il completamento automatico del browser mostra anche l'elenco della cronologia (che è l'elenco dei valori precedentemente digitati, che non sono inclusi nello <datalist>). Quindi voglio solo eliminare lo history-list non lo <datalist>.Come disattivare il completamento automatico mentre si continua a utilizzare l'elemento datalist in html

Se si utilizza la funzione autocomplete = "off", anche questo blocca lo <datalist>.

In breve, voglio solo il <datalist> non quello cronologico.

risposta

-2

Prova questo, spero che il suo lavoro

<input id="datalisttestinput" list="stuff" autocomplete="off"></input> 
     <datalist id="stuff"> 
      <option id="3" value="Collin" > 
      <option id="5" value="Carl"> 
      <option id="1" value="Amy" > 
      <option id="2" value="Kristal"> 
     </datalist> 

migliori auguri

0

Io uso un codice come questo:

<input name="anrede" list="anrede" onmousedown="value = '';" /> 
<datalist id="anrede"> 
    <option value="Herr"></option> 
    <option value="Frau"></option> 
</datalist> 

buona: DataList indicato per la selezione è completa

negativo: Il campo di immissione è vuoto, quindi il vecchio valore non è documentato, se aveva bisogno di essere ricordato da parte dell'utente

12

E 'possibile per poter utilizzare il campo input senza un attributo id o name? Senza quello, il browser non ha davvero alcun modo per associare una storia con quell'elemento.

Nel mio reale veloce test su Firefox, questo sembrava fare il trucco:

<form> 
    <!-- these will remember input --> 
    With id: <input id="myInputId" list="myList" /><br /> 
    With name: <input name="myInputName" list="myList" /><br /> 

    <!-- these will NOT remember input --> 
    No id, name, class: <input list="myList" /><br /> 
    With class: <input class="myInputClass" list="myList" /> 

    <datalist id="myList"> 
    <option value="Option 1"></option> 
    <option value="Option 2"></option> 
    </datalist> 

    <br /> 

    <input type="submit" /> 
</form> 

Nel codice di cui sopra, i input s con una id o name avrebbero ricordato i valori del passato, ma la input senza qualsiasi cosa e l'input con solo un class, non ricordare nulla.

Purtroppo, questo non fare utilizzando il input un po 'più difficile se si necessità di avere un name o id. In tal caso, proverei ad avere un ''e quindi utilizzare alcuni JavaScript per tenerlo sincronizzato con uno input che non ricorderà i valori passati.

+0

Ah, buon suggerimento. In effetti, mi sono appena accorto di aver effettivamente risolto lo stesso problema sulla mia domanda usando un '' e lasciando il nome sull'input reale. Li tengo sincronizzati con un semplice jQuery: http://stackoverflow.com/questions/29756791/html-datalist-with-fallback-causes-duplicate-query-string-parameters –

+0

@StephanMuller yup, questo è esattamente quello che ho pensavo! – thetoast

+0

Suggerimento interessante, qualcuno può confermare se lo stesso funziona anche per Chrome? Presumo che persino Chrome memorizza la cronologia in base all'ID? –

3

Provare a utilizzare l'attributo HTML completamento automatico

<input name="q" type="text" autocomplete="off"/> 

fonte Turn Off Autocomplete for Input

+0

Grazie! Questo mi insegnerà a leggere prima i documenti: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input – jmathew

+0

L'op ha affermato di aver usato l'attributo 'autocomplete'. – sntran