Автозаполнение для динамического ввода текста / ввода, сгенерированного из asp.net MVC - PullRequest
0 голосов
/ 19 января 2012

Я ищу решение для присоединения функции автозаполнения jQuery к динамически генерируемому входу. Таким образом, имя не может быть использовано в разделе JavaScript, как в примере: $("#completeMe").autocomplete({ . ..., отсюда http://carlhoerberg.com/how-to-use-jquery-ui-autocomplete-with-aspnet

Моя идея заключается в том, чтобы вызывать функцию javascript при изменении текста в динамически генерируемом текстовом вводе:

<%= Html.TextBoxFor(x => x.Name,new { onkeypress="doSomething(this)"}) %>

Динамические входные данные генерируются после этого примера: <http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/>

и в методе doSomething () у меня будет ссылка на входные данные отправителя, заданные выражением "this".

но дальше. , Я понятия не имею, как прикрепить функцию автозаполнения к отправителю.

У вас есть идеи?

Ответы [ 2 ]

1 голос
/ 19 января 2012

Основная проблема заключается в том, что вы не можете прикрепить обработчики событий (и т. Д.) К элементам, которых еще нет.Лучший способ решить эту проблему - вызвать функцию autocomplete () для новых элементов по мере их создания.

Используя опубликованный вами пример:

$("#addItem").click(function() {
    $.ajax({
        url: this.href,
        cache: false,
        success: function(html) {
            $("#editorRows").append(html);
  /* !!! */ $("#editorRows").find("input").last().autocomplete();

        }
    });
    return false;
});

Обратите внимание на мои три восклицательных знака,Удалите их, но соблюдайте линию.Здесь вы вызываете функцию автозаполнения в вашей последней добавленной строке ввода, позволяя ей также использовать плагин автозаполнения.

Надеюсь, это ответит на ваш вопрос, удачи!

0 голосов
/ 19 января 2012

Селекторы Id - это только один из доступных селекторов jQuery, вместо этого вы можете использовать «селекторы классов» jQuery.поэтому любой из сгенерированных входных данных будет иметь конкретное имя класса CSS, например toautocomplete:

<input id='someunknownid1' type='text' class='toautocomplete' />
<input id='someunknownid2' type='text' class='toautocomplete' />

, а затем применить плагин автозаполнения при использовании:

$(".toautocomplete").autocomplete();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...