Автозаполнение JQuery, по-видимому, распознает, но не отображает опции выбора - PullRequest
1 голос
/ 29 августа 2011

У меня проблема с автозаполнением jQuery UI.Я думаю, что он исходит из исходного файла (удаленный файл с именем place.php), но это немного странно: этот источник правильно закодирован в json, без пробелов в начале (я думал, что это может быть проблемой, но этонет) и работает нормально, когда я напрямую обращаюсь к нему в браузере.Например, для термина «u» он вернет

(places.php)

[{"id":"2","place":"Belgium"},{"id":"1","place":"USA"}]

Проблемы возникают, когда я пытаюсь получить косвенный доступ к данным с помощью этой формы:

<label for="the_value" value="">Value</label>
<input type="text" id="the_value" name="the_value" value=""/>         
<input type="hidden" id="the_id" name="the_id" value="default"/>

Когда пользователь вводит что-тов поле ввода 'the_value' должны появиться значения из place.php.Вместо этого скользящая панель открывается только на 2–3 миллиметра и ничего не отображает… (кажется, что даже если никакие параметры не отображаются, сценарий распознал, что они были доступны, потому что он немного перемещается, чего не происходит, когда нет результатов…),Примечание: эта проблема не связана с браузером: она появляется как в Mozilla, так и в IE8.Javascript следующий

$(function(){
    $('#the_value').autocomplete({
        source : 'places.php',       
        select : function(event, ui){
            $('#the_id').val(ui.item.id);  
        }
    });
});

Любая помощь будет принята с благодарностью.Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 29 августа 2011

Согласно документации jQuery UI:

Локальные данные могут быть простым массивом строк или содержать объекты для каждого элемента в массиве со свойством метки или значения или обоими,Свойство метки отображается в меню предложений.Значение будет вставлено в элемент ввода после того, как пользователь выберет что-то из меню.

Если вы измените place на value, плагин будет знать, что отображать в раскрывающемся списке, новы все равно сможете получить доступ к id в обработчике выбора.

1 голос
/ 29 августа 2011

Из Документация jQuery по автозаполнению :

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

По сути, это либо массив, либо, если это json, ему нужно иметь метку «значение» и / или «значение».msgstr "где значение - это заданное значение в вашем элементе ввода, а метка - это отображаемое значение.Если присутствует только «значение» или «метка», то они используются для обоих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...