jQuery UI autocompleteを使用して、カスタムHTMLドロップダウンリストを作成しています。ドロップダウンリストをレンダリングするには、hackを使用する必要があります。このハックはjavascriptがロードされるときに呼ばれます(私は望みません)。このコードは別のファイルにありますが、必ずしもオートコンプリートメソッドを使用する必要はありません。jQuery UIのオートコンプリートカスタムHTML
ビュー:
<input id="project"/>
<div id="tmp" style="display: none;"></div>
<script type="text/html" id="templateHolder">
<a>
{$T.value}
<br />
{$T.label}
</a>
</script>
Script.js
$(function() {
var projects = [
{
value: "jquery",
label: "jQuery"
},
{
value: "jquery-ui",
label: "jQuery UI"
}
];
$("#project").autocomplete({
minLength: 0,
source: projects,
focus: function (event, ui) {
$("#project").val(ui.item.label);
return false;
},
select: function (event, ui) {
$("#project").val(ui.item.label);
return false;
}
}).data("autocomplete")._renderItem = function (ul, item) {
var tmp = $("<div>").setTemplate($("#templateHolder").html());
tmp.processTemplate(item);
$("<li></li>").data("item.autocomplete", item)
.append($(tmp).html())
.appendTo(ul);
return;
};
});
.data('autocomplete')
セクションではハックです
は、ここに私のコードです。オートコンプリートがない場合(#project
が見つからない場合)、これを回避する方法はありますか?javascriptエラーは発生しませんか?
:2つのオートコンプリートがページにある場合、最初のものだけが機能します。
甘い、これは両方の問題を解決します。 –