Сделайте автозаполнение jquery, чтобы не заполнять входное значение меткой выбранного элемента - PullRequest
2 голосов
/ 12 апреля 2011

Есть ли способ заставить плагин jquery autocomplete отвечать только на обратный вызов select, чтобы не заполнять целевой ввод значением метки выбранного элемента после выбора пользователя?

Я пытаюсь, но все ещебезуспешно, жду помощи ...

С уважением.Ларри

Ответы [ 5 ]

11 голосов
/ 21 февраля 2012

Я знаю, что это старый вопрос, но для людей, которые не хотят использовать функцию setTimeout, решение состоит в том, чтобы изменить свойство ui.item.value на ""

код

$('#ac').autocomplete({
    source : ["hello", "how", "do", "you", "do"],
    select: function(event, ui){
        if (ui.item && ui.item.value){
            ui.item.value="";
        } 
    }
})
1 голос
/ 08 августа 2011

Попробуйте код ниже;)

$('#ac').autocomplete({
    source : ["hello", "how", "do", "you", "do"],
    close: function(event, ui){
          $('#ac').val('');
    }
});
0 голосов
/ 13 июля 2015

Если ваш исходный массив представляет собой массив объектов со свойствами «label» и «value», плагин справится с этим.

См. jQuery api для автозаполнения :

$('#autocomplete').autocomplete({
    source: [
      {
        label: 'This is a descriptive label'
        , value: 'Just the value'
      }
      ,{
        label: '2 is better than one'
        , value: '2'}
      ,{
        label: 'third times the charm'
        , value:'Three'
      }
    ]
  })
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.js"></script>
<input type='text' id='autocomplete'>  

Фрагмент кода SO не нравится, но работает

0 голосов
/ 09 октября 2011

Вот еще более простой способ (с использованием кода ExperX):

$('#ac').autocomplete({
    source : ["hello", "how", "do", "you", "do"],
    select: function(event, ui){
        $('#ac').css('color','white');    
    }
})
0 голосов
/ 12 апреля 2011

DEMO ON JS FIDDLE

$('#ac').autocomplete({
    source : ["hello", "how", "do", "you", "do"],
    select: function(event, ui){
        setTimeout(function (){
          $('#ac').val('');    
        }, 1000)
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...