使用自动完成功能未正确选择项目
Item not correctly selected with autocomplete
我在Jquery中有一个带自动选择的文本字段,当你键入三个字母时,你会从数据库中得到一个查询并显示一些数据。我需要从_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 Smith"的 id
我该如何解决这个问题?
我能够使用自动完成的选择方法来解决这个问题:
select: function( event, ui ) {
$("[name='elementName[0]']").val(ui.item.label);
$("[name='elementID[0]']").val(ui.item.id);
return false;
}
我把它放在源代码后面,现在它起作用了。
相关文章:
- 在边栏中动态选择项目
- 如果选择了其他选择项目,则隐藏选择项目
- 在 for 循环中选择项目
- 使用ajax/javascript选择项目并将其添加回mysql
- 使用自动完成功能未正确选择项目
- 从laravel 5中的下拉框中选择项目时,应更改隐藏的输入值
- AngularJS下拉列表在选择项目后丢失内容
- 如何从集合中随机选择项目
- 如何在选择项目时使用 ajax 将数据提取到输入字段中
- 检查是否未从下拉列表中选择项目
- 如何使用 jquery 在多组列表框中选择项目
- 选择项目时,kendoListView 更改事件会触发两次
- 无法使用 jQuery .select2 选择项目
- 用于使用 Tab 键选择项目的事件
- 在下拉框中选择项目时更改文本框值
- Jquery - 按 ID 选择项目不起作用
- 使用哈希标记从下拉列表中预先选择项目
- 从下拉列表中选择项目后,显示新选项并显示文本
- 选择项目并一次显示n篇文章
- 有效的javascript算法,用于从数组中选择项目,其中每个条目具有不同的权重