jquery autocomplete - получить выбранный элемент - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть поле автозаполнения с использованием локальных данных JSON.

 $( "#tags" ).autocomplete({ 
 source: get_items,  
 minLength: 2,  
 dataType: 'json'

 });

 function get_items(request, callback) {  
   var result = new Array;

   var myregexp = new RegExp('^' + request.term, "i");

   for(var i = 0; i < keywords.length; i++) {
     if (myregexp.test(keywords[i].name)) {
       var item = { label: keywords[i].name,
                    id   : keywords[i].id
                    };
       result.push(item);
     }

   }

   callback(result);
   return result;
 }

Что я не могу выяснить (я сделал RTFM), так это как я могу получить идентификатор выбранного элемента откуда-то «снаружи». Я имею в виду не от автозаполнения обратных вызовов, а от какой-то не связанной функции где-то еще. Надеюсь, я чист.

что-то вроде:

 function i_do_something_with_the_selected_item() {
      var seleted_id = $( "#tags" ).get_selected_id();
   if (typeof selected_id === 'undefined') {
     // nothing selected - act accordingly

   }   else {    
     // do something with the selected value
    }

 }

1 Ответ

1 голос
/ 30 ноября 2011

Автозаполнение jQuery предназначено для автозаполнения. Он не будет помнить, какие предметы были выбраны (это не его работа). Это логика приложения и на вас.

Однако вы можете получить доступ к исходному массиву, вызвав

$( '#tags' ).autocomplete( 'source' );

Полагаю, было бы очень удобно записать какое-либо свойство в выбранный элемент события autocompleteselect Теперь вы можете прочитать это значение везде в вашем коде.

...