2011-12-08 13 views
1

私が持っている質問は、オートコンプリートがリンクされているテキストボックスに設定されている値を変更する方法です。私がしようとしているのは、YUI 2からYUI 3に変換することです。私はそれをしてはいけないと言わないでください...私の選択ではないからです。私は認識しています...下のコードは以前使用されていたものです。私はすでにオートコンプリート機能を備えています。これはフィールドに到達したばかりのときです.itemSelectEvent.subscribe(myHandler)の部分では、もう何も動作しなくなりました。リストには人物情報が表示されますが、選択すると、[object Object]が名前の代わりにテキストボックスに置かれ、自動的に別のページに転送されます。ご協力ありがとうございました!!!YUI 3オートコンプリートテキストボックス値の変更

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

完全にYUI2からYUI3に移行する必要があります。価値があります。 – juandopazo

答えて

1

resultTextLocatorがチケットでした。私がしなければならなかったことは、ボックスに表示したい値を返すことでした。

resultTextLocator : function (result) { 
         return result["Last Name"] + 
         ', ' + 
         result["First Name"]; 
        } 
1

は、そのためのハンドラであなたがresultオブジェクトを取得します、selectイベントをリッスンし。その構造は、resultイベントのドキュメント(selectイベントの少し上にある)に記載されています。

私は通常resultオブジェクトのrawプロパティの値をフィールドに貼り付けます。

関連する問題