看起來好像一些文本輸入立即給了我一個「下拉列表」,它帶有我過去填寫的值。其他時間沒有。有沒有辦法我可以「鼓勵」這種行爲在輸入框?爲什麼有時會發生這種情況,有時候不會呢我是否需要爲重複用戶提供cookie或其他設備以確保他們具有此功能,或者是否存在一些jquery選項? (因爲我已經在使用它)。如何使文本輸入始終自動完成
回答
這是一個依賴於瀏覽器的功能。瀏覽器可能會查看文本輸入字段的ID和/或名稱並保存您輸入的值。
由於您訪問的網站上使用的輸入字段的ID /名稱,它可能是不透明的。
看看我的JSBIN。爲什麼它會對我從amtrak.com網站上輸入的內容起作用,但是對於我從amazon.com網站上輸入的內容卻不適用? http://jsbin.com/ekeyap/4/edit – 1252748 2013-05-13 23:35:52
瀏覽器根據輸入類型和名稱爲您提供過去填充的值。
因此,當某人在examplea.com上編寫一個名爲「login」的輸入的表單時,當您繼續訪問exampleb.com並且還有一個名爲「login」的輸入時,瀏覽器會檢測到該輸入並且您已經有一些info之前填入名爲「login」的輸入信息並顯示一些選項。
這就是瀏覽器的行爲。
對於jQuery的選項,你可以在http://jqueryui.com/autocomplete/
使用jQuery UI的自動完成這是一個想法。如果您想爲頁面上的每個輸入字段具有特定的下拉值列表。然後用一個小小的javascript,google關閉編譯器以及爲瀏覽器創建收藏夾/書籤的知識,您可以在任何網頁上添加類似的東西。
這裏是jsfiddle
HTML
<input type="text" />
<input type="text" />
<input type="text" />
<input type="text" list="sitelist" />
<datalist id="sitelist">
<option label="Lorem" value="Lorem">
<option label="Ipsum" value="Ipsum">
<option label="Dolor" value="Dolor">
</datalist>
我的示例代碼的Javascript
(function() {
var d = "proin vestibulum ipsum vel tortor sollicitudin luctus".split(" "),
l = document.createElement("datalist");
l.id = "myDynamicDatalist";
d.forEach(function (w) {
var o = document.createElement("option");
o.label = w;
o.value = w;
l.appendChild(o);
});
document.body.appendChild(l);
Array.prototype.forEach.call(document.getElementsByTagName("input"), function (e) {
if (e.list === null || e.list === "") {
e.setAttribute("list", l.id);
}
});
}());
現在使用Google's closure compiler,你可以擺脫所有的空白,縮短東西單行通過將該選項設置爲「簡單」,然後以此結束。
(function(){var b=document.createElement("datalist");b.id="myDynamicDatalist";"proin vestibulum ipsum vel tortor sollicitudin luctus".split(" ").forEach(function(a){var c=document.createElement("option");c.label=a;c.value=a;b.appendChild(c)});document.body.appendChild(b);Array.prototype.forEach.call(document.getElementsByTagName("input"),function(a){(null===a.list||""===a.list)&&a.setAttribute("list",b.id)})})();
現在預先考慮到該行以javascript:
並將其保存到收藏夾/書籤和自己創建一個javascript bookmarklet。
給它一個去。在SO上單擊您最喜歡的/書籤,然後雙擊搜索框,瞧!!
你甚至可以使用jquery創建bookmarklet,而jqueryui意味着你可以使用自動完成功能。
我真的不明白這是如何有用的。我必須「預設」一個待自動填充的單詞列表? – 1252748 2013-05-13 23:42:36
這是一個簡單的例子,想想那個盒子的外面,更復雜的例子是代碼也會監控頁面上的輸入,並存儲你輸入到localStorage的信息,然後當你再次訪問該頁面時,這是不跨域,它會使用保存的數據來提供自動完成器。是的,你必須自己編寫一些代碼,我沒有看到任何東西,但它並不困難,然後你可以使用像我演示的或jquery自動完成或YUI自動完成之類的東西。這是您的問題的合理解決方案。 – Xotic750 2013-05-14 00:30:18
嗯。也許我有點倉促。通過一點工作,它可能非常有用。有一個upvote!我的歉意!當我有一分鐘時,我會深入研究它。謝謝 :) – 1252748 2013-05-14 02:56:14
- 1. 使多行文本框記住文本輸入(自動完成)
- 2. 如何自動完成所有輸入
- 3. 輸入文本字段自動完成(自動填充),在Chrome
- 4. JQuery自動完成如何在自動完成文本輸入中寫入標籤?
- 5. 如何設置崇高文本以始終顯示自動完成建議
- 6. Materializecss自動完成輸入
- 7. HTML輸入自動完成
- 8. Sapui5自動完成輸入
- 9. 使用輸入值自動完成文本區域
- 10. 防止輸入文本使用jQuery UI自動完成
- 11. jQuery使用自動完成功能限制文本框輸入
- 12. 自動完成輸入,如果手動
- 13. Firefox自動完成'自動完成'輸入'按鍵觸發在文本框上輸入
- 14. 使用Prototype如何禁用給定輸入文本框的自動完成?
- 15. 動態輸入文本框不綁定到自動完成
- 16. 如何使用自舉輸入標籤自動完成
- 17. 文本框的自動完成文件夾輸入
- 18. jQuery UI自動完成行爲。如何搜索輸入的自由文本?
- 19. 如何在成功初始自動完成後在WinForm文本框上重新啓動自動完成?
- 20. knockoutjs模板jquery自動完成 - 如何填充自動完成選擇輸入?
- 21. Jquery自動完成 - 自動完成輸入
- 22. Mac終端自動完成
- 23. jQuery的自動完成手動輸入
- 24. jquery自動完成後沒有改變輸入文本
- 25. 製作自動完成文本框/輸入區域
- 26. 自動完成文本框輸入以激活搜索
- 27. Simple_form輸入爲文本和自動完成
- 28. 用自動完成功能相互依賴的輸入文本
- 29. Jquery自動完成不附加到文本輸入框
- 30. 引用jQuery自動完成中的文本輸入
你所看到的是一個瀏覽器功能。如果你想擁有自己的插件,請使用自動完成插件,例如[this one](http://jqueryui.com/autocomplete/)。 – 2013-04-29 17:25:20
總猜測,但我認爲大多數瀏覽器實際上使用「名稱」或「ID」屬性來自動完成用戶輸入。 – RelevantUsername 2013-04-29 17:27:25
@RobertHarvey謝謝!我可以自己做一些類似於cookie的工作,但是有沒有可用的插件,使用戶特定的數據填充列表而不使用數據庫? – 1252748 2013-04-29 17:28:10