我正在寻找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"]);
及其对代码的影响。
答案 0 :(得分:1)
那是使用旧版本的YUI,但它正在为自动完成设置一个DataSource来读取。此特定DataSource使用XHR从服务器请求信息以填充自动填充字段。
"Autocomplete.do"
每次在用户输入时触发自动完成时,DataSource都会查询相对URL。
["Suggestions[0].Results","Name"]
responseSchema是否告诉DataSource如何解析请求到URL的结果。它需要知道如何解析数据,以便它能够显示正确的结果。
答案 1 :(得分:0)
答案 2 :(得分:0)
this.oACDS = new YAHOO.widget.DS_XHR(“/ AutoComplete.do”,[“Suggestions [0] .Results”,“Name”]);
在每次按键时,它从服务器获取json响应,并使用它来填充自动完成下拉列表。 json包含仅在此节点上显示的名称,“名称”字段中的“建议[0] .Results”。
如果您有任何问题,请提前询问。我为asklaila.com编写了这段代码