2011-06-21 2 views
17

Мне интересно, как получить текстовое значение выбранного элемента в автозаполнении jquery.jquery autocomplete получить выделенный текст объекта

Я инициализирован JQuery следующим образом:

$(document).ready(function(){ 
    $("input#autocomplete").autocomplete({ 
     source: postcodelist, 
     select: function (event, ui) { 
      AutoCompleteSelectHandler(event, ui) 
     } 
    }); 
}); 

И я создал функцию функция AutoCompleteSelectHandler (событие, щ) {}.

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

Я сделал google немного и попробовал примеры, но я не могу заставить его работать.

Любая помощь будет очень признательна.

Большое спасибо.

+1

Если вы размещаете HTML-разметку и именно то, что вам нужно сделать, мы могли бы помочь –

ответ

30

Параметр ui имеет item свойство с выбранным текстом

function AutoCompleteSelectHandler(event, ui) 
{    
    var selectedObj = ui.item;    
    alert(selectedObj.value); 
} 

источник: http://jqueryui.com/demos/autocomplete/#event-select перейдите на вкладку «События», а затем событие «Выбрать»

+0

большое вам спасибо !!! спасатель! – rlee923

+0

Какова была бы полная реализация этого? –

1

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

$('input#autocomplete').val() 
+2

Это даст вам то, что пользователь набрал, а не выбранное значение. – rlee923

+0

Возможно, я неправильно понял ваш вопрос? Я думал, что вы ищете вариант, который пользователь выбрал с автозаполнением. Как только они выбирают, он помещает его во вход и извлекается так же, как если бы пользователь набрал его. – kinakuta

4

Вам не нужно применять анонимную функцию как wrap, вы можете напрямую передать функцию ref.

$(document).ready(function(){ 
    $("input#autocomplete").autocomplete({ 
     source: postcodelist, 
     select: AutoCompleteSelectHandler 
    }); 
}); 

В рамках этого метода, вы можете доступ this или event.target, чтобы получить текущее значение, оба значения ссылаются на элемент ввода:

function AutoCompleteSelectHandler(event, ui) { 
    alert($(event.target).val()); 
    alert($(this).val()); 

    // alert(this.value); 
} 
+0

Почему бы просто не получить его из параметра 'ui', который передается в метод, как в моем ответе, как написано в документации jquery ui? – GeertvdC

+0

Все, что я не знал, что вам не нужно указывать параметр. Спасибо за совет! – rlee923

13
// list of clients 
     $("#client").autocomplete({ 
     source: "lib/getClientList.php", 
     minLength: 2, 
     select: function(event, ui) { 
      alert(ui.item.value); 
      } 
     }) 

;

ui.item.value является ссылкой, которая использует JQuery, чтобы присвоить значение входного

+0

Можно ли получить индекс выбранного элемента? – FrenkyB

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