1
4

2 に答える 2

0

私が自分の問題に対して見つけた解決策を以下で見つけてください

既存のコード:

response($.map(data, function (item) {
                    return { label: highlight(item.InstitutionName, request.term),
                        id: item.InstitutionId
                    };

解決:

response($.map(data, function (item) {
                    return { label: highlight(item.InstitutionName, request.term),
                        value: item.InstitutionName, 
                        id: item.InstitutionId
                    };

元のコードはラベル(htmlタグが埋め込まれている)を返し、値は返されませんでした。値がなかったため、テキストボックスはラベルを使用して表示しました。ここで、テキストボックスの値をテキスト(htmlタグなし)で明示的に割り当てます。これで問題が解決します。

これが現在の様子のスナップショットです。

オートコンプリート-修正後

于 2012-10-22T18:54:28.693 に答える
0

問題は、最近見つけたデータのラベルを取得して、プレーン テキストではなく HTML としてレンダリングしていることだと思います。したがって、代わりにBerkeley、オートコンプリートが表示され<strong>Ber</strong>keleyます。

表示する前に、解析して HTML タグを削除してみてください。

function sanitize(text){
   var regex = /(<([^>]+)>)/ig;
   return text.replace(regex, "");
}

.data("autocomplete")._renderItem = function (ul, item) {
   return $("<li></li>")
   .data("item.autocomplete", item)
   .append($("<a></a>").html(sanitize(item.label)))
   .appendTo(ul);                
};

正規表現はここから抽出されました: Remove HTML Tags in Javascript with Regex

于 2012-10-11T16:20:12.787 に答える