YUI 3 Autocomplete Textbox Изменение значения - PullRequest
1 голос
/ 08 декабря 2011

Вопрос, который у меня возникает, состоит в том, как я могу изменить значение, заданное в текстовом поле, с которым связано автозаполнение.Задача, которую я пытаюсь выполнить, - преобразовать YUI 2 в YUI 3. Пожалуйста, не говорите, что я не должен этого делать ... потому что это не мой выбор.Я знаю ... Код ниже - это то, что использовалось ранее.У меня уже есть функция автозаполнения, делающая большую часть того, что ей нужно.Именно когда я добираюсь до части field.itemSelectEvent.subscribe (myHandler), я больше не могу заставить работать что-либо еще.Список содержит информацию о людях, но при выборе он просто помещает [объект объекта] в текстовое поле вместо их имени, которое автоматически пересылается на другую страницу.Спасибо за вашу помощь !!!

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);

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

resultTextLocator был билет. Все, что мне нужно было сделать, это вернуть значение, которое я хотел отобразить в поле.

resultTextLocator : function (result) {
                        return result["Last Name"] + 
                        ', ' + 
                        result["First Name"];
                    }
1 голос
/ 09 декабря 2011

Прослушайте событие select, затем в обработчике вы получите объект result.Структура этого описана в документации для события result (немного выше, чем событие select).

Обычно я беру значение из свойства raw в resultобъект втыкать в поле.

...