2013-04-10 17 views
27

Mam pole input, które pokazuje listę z elementem html5 <datalist>. Problem polega na tym, że przy autouzupełnianiu przeglądarki wyświetlana jest również lista historii (która jest listą uprzednio wpisanych wartości, które nie są zawarte w <datalist>). Więc chcę się pozbyć history-list, a nie <datalist>.Jak wyłączyć autouzupełnianie przy użyciu elementu datalist w html

Jeśli użyję funkcji autocomplete = "off", zablokuje to również <datalist>.

Krótko mówiąc, chcę tylko <datalist>, a nie historii.

Odpowiedz

-2

Spróbuj tego, mam nadzieję, że jego praca

<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> 

Best wishes

0

użyć kodu:

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

dobry: datalist pokazano na wybór jest kompletna

bad: Pole wejściowe jest pusty, dlatego stara wartość nie jest udokumentowane, razie potrzeby zostać zapamiętany przez użytkownika

12

Czy to możliwe, aby użyć pola input bez atrybutu id lub name? Bez tego przeglądarka nie ma żadnego sposobu powiązania historii z tym elementem.

W moim rzeczywistym szybkiego testów na Firefoksie, to wydawało się rade:

<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> 

W kodzie powyżej, input s przy id lub name będzie pamiętał wartości z przeszłości, ale input bez cokolwiek i dane wejściowe tylko z class nie będą pamiętały niczego.

Niestety, ten robi używając input nieco bardziej trudne, jeśli potrzeba to mieć name lub id. W takim przypadku powinienem wypróbować id 'ed input, który jest również display: none' ed, a następnie użyć trochę JavaScript, aby zachować synchronizację z input, który nie będzie pamiętał poprzednich wartości.

+0

Ach, dobrą propozycję. W rzeczywistości, po prostu zdałem sobie sprawę, że faktycznie rozwiązałem ten sam problem na moim własnym pytaniu, używając '' i pomijając nazwę na prawdziwym wejściu. Zachowuję je zsynchronizowane z prostym plikiem jquery: http://stackoverflow.com/questions/29756791/html-datalist-with-fallback-causes-duplicate-query-string-parameters –

+0

@StephanMuller tak, właśnie to myślał! – thetoast

+0

Interesująca sugestia, czy ktoś może potwierdzić, czy to samo działa również w Chrome? Zakładam, że nawet chrom zapamiętuje historię opartą na ID? –

3

Spróbuj użyć atrybutu HTML uzupełni

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

source Turn Off Autocomplete for Input

+0

Dzięki! To nauczy mnie najpierw czytać dokumenty: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input – jmathew

+0

Op powiedział, że użyli atrybutu "autouzupełniania". – sntran

Powiązane problemy