YUI自动完成示例问题

时间:2009-07-13 11:04:25

标签: autocomplete yui widget

我正在寻找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 个答案:

答案 0 :(得分:1)

那是使用旧版本的YUI,但它正在为自动完成设置一个DataSource来读取。此特定DataSource使用XHR从服务器请求信息以填充自动填充字段。

"Autocomplete.do" 

每次在用户输入时触发自动完成时,DataSource都会查询相对URL。

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

responseSchema是否告诉DataSource如何解析请求到URL的结果。它需要知道如何解析数据,以便它能够显示正确的结果。

答案 1 :(得分:0)

  

我正在寻找实施方案   YUI自动完成,我遇到了   这个脚本......

为什么不查看YUI AutoComplete页面以获得深入的示例。

Yahoo! UI Library: AutoComplete

答案 2 :(得分:0)

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

在每次按键时,它从服务器获取json响应,并使用它来填充自动完成下拉列表。 json包含仅在此节点上显示的名称,“名称”字段中的“建议[0] .Results”。

如果您有任何问题,请提前询问。我为asklaila.com编写了这段代码