2013-10-10 2 views
1

Позвольте мне начать с того, что я на JQuery версии 1.3.2. Модернизация на этом этапе не является вариантом.Использование автозаполнения в форме, отличной от DOM

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

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

Элемент clientName является частью динамически добавленной формы. Если я использую код ниже, ничего не происходит; данные не извлекаются.

$('#clientName') 
    .site_clientAutocomplete(
    'admin', 
    function($event, $result, $data) 
    { 
     $('#clientName').val($data.ClientName); 
    } 
); 

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

$("#clientName").live('keydown', function(){ 

}); 

Может ли кто-нибудь сказать мне, как я могу заставить этот автозаполнение функционировать должным образом?

+0

никакого кода нет ответа – Peter

+0

'live' работает только для обработчиков событий. он не обнаруживает изменений в DOM и позволяет вам реагировать на них. Вы можете посмотреть плагин «livequery», или вы можете применить виджет, когда новый контент был загружен в DOM. –

+0

@AndrewWhitaker, спасибо, Андрей. Теперь я посмотрю на плагин – NaN

ответ

1

live только для обработки события, которые происходят на элементах, соответствующих селектору сейчас или в будущем. Если вам нужно более надежное обнаружение элементов, соответствующих вашему селектору, вы можете применить виджет при добавлении контента или использовать livequery plugin

С помощью livequery вы можете «слушать» новые элементы, соответствующие вашему селектору, и запускать функция, когда это событие происходит. В вашем случае, это бы что-то вроде этого:

$('clientName').livequery(function() { 
    $('#clientName').site_clientAutocomplete(
     'admin', 
     function($event, $result, $data) 
     { 
      $('#clientName').val($data.ClientName); 
     } 
    ); 
}); 
+0

Еще раз спасибо, Andrew – NaN

+0

@NaN: проблем нет! Рад помочь. –

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