Автозаполнение jQuery в ASP.net MVC не работает, когда элемент управления создан способом Ajax

У меня проблема, не могли бы вы помочь мне своими знаниями ..?

По сути, это расширение автозаполнения jQuery зависит от готового метода jQueryLibrary. (Я не уверен на 100%, что он делает на самом деле, но я могу предположить, что он проверяет, был ли загружен DOM, если он загружен, он делает что-то как обычный обработчик события «onload»).

Теперь у меня есть приложение ASP.net MVC, в котором я использую Ajax для рендеринга частичного представления (файл ascx), и этот файл содержит текстовое поле автозаполнения.

Поскольку DOM уже загружен, и теперь я модифицирую DOM с содержимым файла ascx в стиле Ajax, мои текстовые поля в ascx ничего не делают для автозаполнения. Что может быть альтернативой или обходным путем этой проблемы ..? Даже мне немного любопытно, почему это не работает..?


person Community    schedule 03.04.2009    source источник
comment
Джереми, большое спасибо, что ты ответил. Эй, я не совсем понял, что ты сказал. В моем ascx (который отображается с помощью Ajax) есть точные следующие коды.   -  person    schedule 03.04.2009
comment
‹input id=propertySearchTextBoxForProjectName name=propertySearchTextBoxForProjectName style=width: 200px; type=text value= /› ‹input id=propertySearchTextBoxIDForProjectName name=propertySearchTextBoxIDForProjectName type=hidden value= /›   -  person    schedule 03.04.2009
comment
‹script type=text/javascript› $('#propertySearchTextBoxForProjectName').autocomplete('/Explorer/LookupValues', { dataType : 'json',   -  person    schedule 03.04.2009
comment
синтаксический анализ: функция (данные) { var rows = новый массив (); for(var i=0; i‹data.length; i++){ rows[i] = {data:data[i], value:data[i].propValue, result:data[i].propValue};   -  person    schedule 03.04.2009
comment
} возвращать строки; },formatItem : function(row, i, n){ return row.propValue;} }); $('#propertySearchTextBoxForProjectName').result(function(e, d, f) { $('#propertySearchTextBoxIDForProjectName').val(d[1]); }); ‹/скрипт›   -  person    schedule 03.04.2009


Ответы (1)


вам нужно снова загрузить функцию автозаполнения, как вы сказали, новые элементы в dom появились после того, как jquery уже загружен. Вы можете либо поместить функцию jquery в ascx (простой способ), либо заставить jquery снова запускаться в DOM, что может привести к непредвиденным результатам.

person Jeremy B.    schedule 03.04.2009