我的问题是我如何能够更改自动填充链接到的文本框中设置的值。我试图做的任务是从YUI 2转换为YUI 3.请不要说我不应该这样做...因为这不是我的选择。我知道......以下代码是之前使用过的代码。我已经拥有自动完成功能,可以完成大部分需要做的事情。只是当它到达field.itemSelectEvent.subscribe(myHandler)部分时,我再也无法获得其他任何工作了。该列表提供了人员信息,但是当选择它时,只需将[object Object]放在文本框中,而不是自动转发到另一个页面的名称。谢谢你的帮助!!!
var field = new YAHOO.widget.AutoComplete("webUserSearch",
"webUserSearchContainer", oDS);
field.highlightClassName = "autoCompleteHighlight";
field.useShadow = true;
field.queryMatchContains = true;
field.maxResultsDisplayed = 20;
field.resultTypeList = false;
field.formatResult = function(oResultData, sQuery) {
return "<div class=\"result\"><u style=\"cursor:pointer\">"
+ oResultData['Last Name'] + ", " + oResultData['First Name']
+ "</u> (" + oResultData['User Name'] + ")</div>";
};
var myHandler = function(sType, aArgs) {
var theField = aArgs[0];
var selectedElement = aArgs[1];
var repObject = aArgs[2];
theField.getInputEl().value = repObject['Last Name'] + ", "
+ repObject['First Name'];
var newTabURL = <URL Removed for Stack Overflow>;
window.location.href = newTabURL;
};
field.itemSelectEvent.subscribe(myHandler);
答案 0 :(得分:1)
监听select
事件,然后在处理程序中获取result
对象。其结构在result
事件的文档中进行了描述(距select
事件略高)。
我通常会从raw
对象的result
属性中取一个值来粘贴到该字段中。
答案 1 :(得分:1)
resultTextLocator
。我所要做的就是返回我想在框中显示的值。
resultTextLocator : function (result) {
return result["Last Name"] +
', ' +
result["First Name"];
}