2013-04-10 1 views
27

У меня есть поле input, которое показывает список, используя элемент html5 <datalist>. Проблема в том, что с <datalist> в автозаполнении браузера также отображается список истории (который является списком ранее введенных значений, которые не включены в <datalist>). Поэтому я просто хочу избавиться от history-list, а не от <datalist>.Как отключить автозаполнение, продолжая использовать элемент datalist в html

Если я использую функцию autocomplete = "off", это также блокирует <datalist>.

Короче говоря, я просто хочу, чтобы <datalist> не был одним из первых.

ответ

-2

Попробуйте это, я надеюсь, что его работа

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

С наилучшими пожеланиями

0

Я использую такой код:

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

хорошо: DataList показан для выбора является полной

: Поле ввода пустые, поэтому старое значение не документировано, , если это необходимо, чтобы помнить пользователь

12

Возможно ли вы использовать input поле без id или name атрибута? Без этого браузер не имеет никакого способа связать историю с этим элементом.

В моем реального быстрого тестирования на Firefox, это, казалось, сделать трюк:

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

В вышеприведенном коде input s с id или name будет помнить прошлые значения, но input без ничего, а вход с class будет не запомнить все.

К сожалению, это сделать с помощью input немного сложнее, если вам нужно это иметь name или id. В этом случае я попробую иметь id 'ed input, который также является display: none' ed, а затем использовать некоторый JavaScript, чтобы синхронизировать его с input, который не будет помнить прошлые значения.

+0

Ах, хорошее предложение. На самом деле, я просто понял, что на самом деле я решил эту же проблему по своему собственному вопросу, используя '' и оставляя имя на реальном входе. Я держу их в синхронизации с простым куском jquery: http://stackoverflow.com/questions/29756791/html-datalist-with-fallback-causes-duplicate-query-string-parameters –

+0

@StephanMuller yup, это именно то, что я думал! – thetoast

+0

Интересное предложение, может ли кто-нибудь подтвердить, работает ли тот же Chrome? Я полагаю, что хром помнит историю, основанную на ID? –

3

Попробуйте использовать HTML атрибут автозаполнение

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

Source Turn Off Autocomplete for Input

+0

Спасибо! Это научит меня читать документы сначала: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input – jmathew

+0

Операция говорила, что они использовали атрибут autocomplete. – sntran