JQuery автозаполнение получить выбранный текст элемента - PullRequest
17 голосов
/ 21 июня 2011

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

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

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

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

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

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

Любая помощь будет высоко ценится.

Спасибо большое заранее.

Ответы [ 4 ]

31 голосов
/ 21 июня 2011

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

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

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

14 голосов
/ 20 ноября 2011
// list of clients
        $( "#client" ).autocomplete({
        source: "lib/getClientList.php",
        minLength: 2,
        select: function(event, ui) {
            alert(ui.item.value);
             }
        })

;

ui.item.value - это ссылка, которую jquery использует для назначения значения для входа

4 голосов
/ 21 июня 2011

Вам не нужно применять анонимную функцию в качестве переноса, вы можете напрямую передать функцию 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 );
}
1 голос
/ 21 июня 2011

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

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