Пример проблемы с автозаполнением YUI - PullRequest
0 голосов
/ 13 июля 2009

Я искал реализации YUI AutoComplete и наткнулся на этот скрипт с сайта asklaila.com -

<script type="text/JavaScript">
    YAHOO.example.ACJson = new function() {
        this.oACDS = new YAHOO.widget.DS_XHR("/AutoComplete.do", 
            ["Suggestions[0].Results","Name"]);

        this.oACDS.queryMatchContains = true;
        this.oACDS.scriptQueryAppend = "city=Mysore"; // Needed for YWS
        function fnCallback(e, args) {
            document.searchForm.where.focus();
            acSelected = true;
            return false;
        }

        this.oAutoComp = new YAHOO.widget.AutoComplete('what','whatContainer', this.oACDS);
        this.oAutoComp.itemSelectEvent.subscribe(fnCallback);
        this.oAutoComp.formatResult = function (oResultItem,sQuery) {
            return oResultItem[0];
        }

        this.oAutoComp.queryDelay = 0;
        this.oAutoComp.useIFrame = true; 
        this.oAutoComp.prehighlightClassName = "yui-ac-prehighlight";
        this.oAutoComp.minQueryLength = 2;
        this.oAutoComp.autoHighlight = false;
        this.oAutoComp.textboxFocusEvent.subscribe(function() {
            this.oAutoComp.sendQuery("");
        });

        this.oAutoComp.doBeforeExpandContainer = function(oTextbox, oContainer, sQuery, aResults) {
            var pos = YAHOO.util.Dom.getXY(oTextbox);
            pos[1] += YAHOO.util.Dom.get(oTextbox).offsetHeight + 2;
            YAHOO.util.Dom.setXY(oContainer,pos);
            return true;
        };
    }
</script>

Реализуется раскрывающийся список автозаполнения YUI. То, что я хочу понять, это то, что это

this.oACDS = new YAHOO.widget.DS_XHR("/AutoComplete.do", ["Suggestions[0].Results","Name"]);

делает и его влияние на код.

Ответы [ 3 ]

1 голос
/ 13 июля 2009

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

"Autocomplete.do" 

Относительный URL-адрес, запрашиваемый источником данных каждый раз, когда автозаполнение запускается, когда пользователь печатает.

["Suggestions[0].Results","Name"]

Является ли responseSchema, который сообщает DataSource, как анализировать результаты запроса в URL. Он должен знать, как анализировать данные, чтобы он мог показать правильные результаты.

0 голосов
/ 20 июля 2009

this.oACDS = new YAHOO.widget.DS_XHR ("/ AutoComplete.do", ["Рекомендации [0] .Результаты", "Имя"]);

При каждом нажатии клавиши он получает ответ json с сервера и использует его для заполнения раскрывающегося списка автозаполнения. Файл json содержит имена, отображаемые только в этом узле, «Предложения [0]. Результаты» в поле «Имя».

Если у вас возникли проблемы, спросите заранее. Я написал этот кусок кода для asklaila.com

0 голосов
/ 13 июля 2009

Я охотился за реализацией YUI Autocomplete и я наткнулся этот скрипт ...

Почему бы не взглянуть на страницу автозаполнения YUI для подробных примеров.

Yahoo! Библиотека пользовательского интерфейса: автозаполнение

...