2011-11-10 8 views
1

私はYUI 2 autocompleteを使用しています。私は自分のWebサービスを提案しています。
ユーザーが「」(スペース)を入力すると、候補が表示されませんでした。ユーザーが "foo bar"と入力した場合のように、提案は "foo"まで表示されますが、ユーザーが ""を入力すると、提案は表示されません。
Ajax呼び出しを確認し、スペースが "%20"に置き換えられていることを確認しました。スペースのあとでAjaxの各呼び出しに "%20"が含まれているため、データベースからレコードが取得されないのはこのためです。
スペースを区切り文字として設定しようとしました。区切り文字としてスペースを使用すると、新しいターム(スペースの後に入力したユーザー)の候補が表示されます。空白の後に「foo bar」と入力すると「bar」の候補が表示されますが、完全な「foo bar」という語句の候補が表示されます。
私はスペースを含めてどのようなユーザーが入力したものであっても、完全な期間の提案を表示したいと思います。
これをYUIで処理する方法はありますか?YUIオートコンプリートのスペースを扱う方法

答えて

1

generateRequestメソッドをオーバーライドすることでURLをエンコードし、それはあなたがあなたの答えに何かを追加してくださいでき:)

myAutoComp.generateRequest = function(sQuery) { 
    return "myProject/index.php?query=" + encodeURIComponent(sQuery); 
}; 
+0

私はあなたがクエリをエンコードすべきであることを示唆していた:) – Zlatko

+0

@zladuric:あなたは私に自分自身に答える機会を与えた:) – xyz

0
YUI().use('autocomplete', 'autocomplete-highlighters', function (Y) { 
    Y.one('#ac-input').plug(Y.Plugin.AutoComplete, { 
     resultHighlighter: 'phraseMatch', 
     source: 'your url' 
    }); 
}); 

私にとってはうまくいきます。

+0

を働いていましたか?私はそれがどのように宇宙を扱うのか分かりません。 – xyz

+0

+これはYUI 3ですか? – Zlatko

+0

@zladuric:私はMy_BoonがYUI3について話していると思う。私はYUI2を試しています。 – xyz