我在Jquery中有一个带有autoselect的文本字段,当你输入三个字母时,你会从数据库中获得一个查询并显示一些数据。我需要从_renderItem方法获取id属性,但我没有正确使用它。以下是我的代码:
$("#textField").autocomplete({
minLength: 3,
source: function(request, response) {
var loadIdentities = "<?php echo $this->Html->url(array('controller' => 'Identities', 'action' => 'getIdentity')); ?>/" + Base64.encode(request.term);
$.getJSON(loadIdentities, function(data) {
response(data);
});
}
}).data("ui-autocomplete")._renderItem = function(ul, item) {
console.log(item.id);
return $("<li>")
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};
在行console.log(item.id)中,我没有得到正确的值。当您单击自动完成列表中的元素进行选择时,当您单击item.id未正确更新时,会发生这种情况,并且显示的值代替正确的item.id是您键入时的值自动完成。
例如,如果在文本字段中键入名称“John Smith”,您将在自动填充上获得两个选项:John Smith和John Smithson。如果您选择单击“John Smithson”选项,则将具有“John Smith”的item.id值,并且我想要具有“John Smithson”的id
我该如何解决这个问题?
答案 0 :(得分:0)
我能够使用自动完成的select方法解决这个问题:
select: function( event, ui ) {
$("[name='elementName[0]']").val(ui.item.label);
$("[name='elementID[0]']").val(ui.item.id);
return false;
}
我把它放在源码之后,现在它可以工作。