2013-04-10 22 views
27

Tôi có trường input hiển thị danh sách sử dụng phần tử html5 <datalist>. Vấn đề là với <datalist> tính năng tự động hoàn thành của trình duyệt cũng hiển thị danh sách lịch sử (đây là danh sách các giá trị đã nhập trước đó, không được bao gồm trong số <datalist>). Vì vậy, tôi chỉ muốn loại bỏ các history-list không phải là <datalist>.Cách tắt tự động hoàn tất trong khi tiếp tục sử dụng phần tử dữ liệu trong html

Nếu tôi sử dụng tính năng autocomplete = "off", điều này cũng chặn <datalist>.

Tóm lại, tôi chỉ muốn <datalist> không phải là lịch sử.

Trả lời

-2

Hãy thử điều này, tôi hy vọng công việc của mình

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

Chúc

0

tôi sử dụng một mã như thế này:

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

tốt: Các datalist hiển thị cho lựa chọn hoàn tất

xấu: Các lĩnh vực đầu vào trống, do đó giá trị cũ không được ghi nhận, nếu cần thiết để được nhớ đến bởi người sử dụng

12

Có thể để bạn có thể sử dụng trường input mà không có một thuộc tính id hoặc name? Không có điều đó, trình duyệt không thực sự có bất kỳ cách nào để liên kết lịch sử với phần tử đó.

Trong thật nhanh thử nghiệm của tôi trên Firefox, điều này dường như làm các trick:

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

Trong đoạn mã trên, các input s với một id hoặc name sẽ nhớ các giá trị trong quá khứ, nhưng input không mọi thứ và đầu vào chỉ với một số class sẽ không phải ghi nhớ bất cứ điều gì.

Thật không may, điều này giúp bạn sử dụng input hơi khó khăn hơn nếu bạn cần nó để có một name hoặc id. Trong trường hợp đó, tôi sẽ thử có một số id 'ed input cũng được biên soạn display: none' và sau đó sử dụng một số JavaScript để giữ cho nó được đồng bộ hóa với một số input sẽ không nhớ giá trị quá khứ.

+0

Ah, gợi ý tốt. Trong thực tế, tôi chỉ nhận ra rằng tôi thực sự đã giải quyết cùng một vấn đề trên câu hỏi của riêng tôi bằng cách sử dụng một '' và để lại tên trên đầu vào thực. Tôi giữ chúng đồng bộ với một đoạn jquery đơn giản: http://stackoverflow.com/questions/29756791/html-datalist-with-fallback-causes-duplicate-query-string-parameters –

+0

@StephanMuller yup, đó là chính xác những gì tôi đã suy nghĩ! – thetoast

+0

Đề xuất thú vị, ai đó có thể xác nhận liệu các tác phẩm tương tự cho Chrome có phù hợp không? Tôi đoán thậm chí chrome nhớ lịch sử dựa trên ID? –

3

Hãy thử sử dụng HTML thuộc tính tự động hoàn thành

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

nguồn Turn Off Autocomplete for Input

+0

Cảm ơn! Điều đó sẽ dạy tôi đọc tài liệu trước tiên: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input – jmathew

+0

Op đã nói rằng họ đã sử dụng thuộc tính 'autocomplete'. – sntran

Các vấn đề liên quan