jQuery UI автозаполнение нескольких экземпляров после добавления поля - PullRequest
2 голосов
/ 24 мая 2011

Я использую плагин автозаполнения пользовательского интерфейса jQuery и динамически добавляю новые поля в форму с помощью append () в jQuery. Проблема в том, что я хотел бы создать вновь добавленное поле и поле автозаполнения, чтобы было более 1 поля автозаполнения, даже с тем же исходным URL. Любая помощь?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 25 мая 2011

Как это?

var blahBlah = [
    "ActionScript",
    "AppleScript",
    "Asp",
    "BASIC",
    "C",
    "C++",
    "Clojure",
    "COBOL",
    "ColdFusion",
    "Erlang",
    "Fortran",
    "Groovy",
    "Haskell",
    "Java",
    "JavaScript",
    "Lisp",
    "Perl",
    "PHP",
    "Python",
    "Ruby",
    "Scala",
    "Scheme"
    ];
$(document).ready(function() {
    $("input#Foo").autocomplete({
        source: blahBlah
    });
    $("input#Bar").click(function() {
        var div = $("<div/>").text("Dynamically generated control").insertBefore("div:last");
        var input = $("<input/>").autocomplete({
            source: blahBlah
        }).appendTo(div);
    });
});

Демо здесь .

0 голосов
/ 19 февраля 2015

Я знаю, что это старый вопрос, но я столкнулся с той же проблемой и нашел решение.Проблема, которую я обнаружил, заключалась в использовании функции клонирования JQuery для создания нового ввода.Автозаполнение не будет отображаться или работать.Проблема в этом случае заключается в том, что клон копирует все, включая исходную информацию автозаполнения, которая указывает на автозаполнение входных данных, которые были скопированы.

Чтобы решить эту проблему, я вручную создал клон, затем применил автозаполнение, и он запустился.за работой.В действительности это всегда работало, но указывало на отображение исходного автозаполнения.

Чтобы вручную создать копию ввода, я сделал следующее:

// note origInput = the input we are copying $("#myID")
var myClone = $("<input />")
                .attr("name", origInput.attr("name"))
                .attr("type", origInput.attr("type"))
                .attr("id", mynewid)
                .val("")
                .autocomplete( <your values here> );

myClone.appendTo(<parent where you want it to be>);
0 голосов
/ 24 мая 2011

После функции append() вы должны вызвать autocomplete() для нового поля и указать для него тот же источник, что и для исходного поля.

...