我尝试使用jQuery UI自动完成功能显示一些数据并选择它。 但是我在控制台中看到一些错误 我收到JavaScript错误(项目未定义)。 我的代码是
jq版本: jquery-ui-1.10.3.custom.min.js jq-ui版本: jquery-1.10.2.min.js
$("#searchterms").autocomplete({
minLength: 2,
source: '@(Url.RouteUrl("OrderSkuSearch"))',
focus: function (event, ui) {
$("#searchterms").val(ui.item.label);
$("#productid").val(ui.item.id);
console.log("focus: " + ui.item.id);
return false;
},
select: function (event, ui) {
$("#searchterms").val(ui.item.value);
$("#productid").val(ui.item.id);
console.log("select: " + ui.item.id);
return false;
},
autoFocus: true,
delay: 3000
})
.data("ui-autocomplete")._renderItem = function (ul, item) {
//if ($("#productid").val() == "") {
// $("#productid").val(item.id);
//}
$("#productid").val(item.id);
return $("<li>")
.append("<a>" + item.value + ">" + item.label + "</a>")
.appendTo(ul);
};
返回类型为列表:
[{"label":"Build your own computer","value":"COMP_CUST","id":1}]
答案 0 :(得分:0)
目前尚不清楚您要完成什么。考虑以下示例:
$(function() {
var terms = [{
label: "Label 1",
value: "Value 1",
id: 1001
}, {
label: "Label 2",
value: "Value 2",
id: 1002
}, {
label: "Label 3",
value: "Value 3",
id: 1003
}];
$("#searchterms").autocomplete({
minLength: 2,
source: terms,
focus: function(event, ui) {
$("#searchterms").val(ui.item.label);
$("#productid").val(ui.item.id);
console.log("focus: " + ui.item.id);
return false;
},
select: function(event, ui) {
$("#searchterms").val(ui.item.value);
$("#productid").val(ui.item.id);
console.log("select: " + ui.item.id);
return false;
},
autoFocus: true,
delay: 3000
});
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="ui-widget">
<label for="searchterms">Search: </label>
<input type="text" id="searchterms" />
<input type="text" id="productid" />
</div>
这似乎可以满足您的要求,但是我不确定您要创建的链接是什么。
希望这会有所帮助。