2013-04-29 3 views
0

Кажется, что некоторые текстовые входы сразу дают мне своего рода «выпадающее меню» со значениями, которые я заполнил в прошлом. Другие времена нет. Есть ли способ, которым я могу "поощрять" это поведение в вводах? Почему это иногда случается, а иногда нет? Должен ли я предоставить повторному пользователю куки-файл или какое-то другое устройство, чтобы убедиться, что у них будет эта функция или есть какой-нибудь параметр jquery? (так как я уже использую это).Как сделать текстовые входы всегда автозаполнением

+0

Что вы видите, это функция браузера. Если вы хотите использовать свой собственный, используйте плагин автозаполнения, например [этот] (http://jqueryui.com/autocomplete/). –

+0

Общая гипотеза, но я думаю, что большинство браузеров на самом деле используют атрибут «имя» или «id», чтобы автозаполнять ввод пользователя. – RelevantUsername

+0

@RobertHarvey Спасибо! Возможно, я мог бы сделать что-то вроде этой работы с куки-файлом самостоятельно, но есть ли какой-либо плагин, который легко доступен, что делает список заполняемым из пользовательских данных без использования базы данных? – 1252748

ответ

0

Это зависит от браузера. Браузеры предположительно просматривают идентификатор и/или имя поля ввода текста и сохраняют введенное значение.

Он может быть пятнистым из-за ID/имени полей ввода, используемых на веб-сайтах, которые вы посещаете.

+0

Проверьте мой JSBIN. Почему он будет работать для ввода, который я взял с веб-сайта amtrak.com, но не для ввода, который я взял с веб-сайта amazon.com? http://jsbin.com/ekeyap/4/edit – 1252748

0

В браузере вы заполняете заполненные значения на основе типа ввода и имени.

Итак, когда кто-то вводит форму в examplea.com с именем с именем «login», когда вы переходите на exampleb.com и имеете вход с именем «login», браузер обнаруживает это, и у вас уже есть некоторые информация заполнена для ввода с именем «login» раньше и покажет вам некоторые параметры.

Это поведение браузера.

Для опции JQuery, вы можете использовать автозаполнение JQuery UI по адресу http://jqueryui.com/autocomplete/

1

Вот идея. Если вы хотите иметь определенный список раскрывающихся значений для каждого поля ввода на странице. Затем с помощью небольшого javascript, компилятора закрытия googles и знания о создании избранного/закладки для вашего браузера вы можете добавить себе что-то подобное на любую веб-страницу.

Вот мой пример кода на 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, вы можете избавиться от всех пробелов и сократить вещи в одну строку текста, просто установив опцию «simple», и вы закончите с этим.

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

Отдайте это. нажмите на свою любимую/закладку здесь, а затем дважды щелкните окно поиска, вуаля !.

Вы даже можете создать букмарклет с jquery, а jqueryui означает, что вы можете использовать их автозаполнение.

+0

Я действительно не понимаю, как это полезно. Я должен «преднамерять» список подлежащих автозаполнению слов? – 1252748

+0

Это был простой пример, подумайте немного за пределами этого окна, более сложным примером будет то, что код будет также контролировать входные данные на странице и хранить информацию, которую вы вводите в localStorage, а затем, когда вы снова посещаете эту страницу, это а не перекрестный домен, он будет использовать сохраненные данные для обеспечения автозаполнения. Да, вам нужно будет написать часть этого кода самостоятельно, я ничего не видел в дикой природе, но это не так сложно, и тогда вы можете использовать что-то вроде продемонстрированного автозаполнения jQuery или автозаполнения YUI. Это правдоподобное решение вашего вопроса. – Xotic750

+0

Хм. Возможно, я немного поспешил. С небольшой работой это может быть очень полезно. Имейте upvote! И мои извинения! Я посмотрю на него глубже, когда у меня будет минут. Благодаря :) – 1252748

Смежные вопросы