我正在使用jQuery 1.8 Autocomplete。
有没有办法让所选对象在其中一个事件处理程序之外?
我正在尝试做类似的事情......
$("#searchUsers").autocomplete({
source: 'Users/List',
});
$("#addUser").click(function() {
// get the selected user Id
var item = $("#searchUsers").autocomplete('selected');
alert(item.Id);
});
我看不出有任何办法,但这似乎是一个非常明显的要求。
答案 0 :(得分:0)
默认行为是选择项目时,该值将放在文本框中。所以你可以通过$("#searchUsers").val()
来实现它。
如果您需要来自所选项目的更多信息,则需要传递select
事件处理程序,并在该处理程序中将信息存储在其他位置。
答案 1 :(得分:0)
将select
事件添加到自动填充功能:
search: function (event, ui) {
$("#searchUsers").val('');
},
select: function (event, ui) {
foo = ui.item.label;
$("#bar").val(ui.item.id);
baz = (ui.item.JsonField);
}
查看“事件”标签here
修改强>
将search
事件添加到函数中。我每次用户进行搜索时都使用search
事件清除字段/变量
答案 2 :(得分:0)
我遇到了同样的问题。我可以将所选项目作为对象进行访问。
$("#searchUsers").data("autocomplete").selectedItem
答案 3 :(得分:0)
老问题,但仍然......
只需定义一个JavaScript变量,然后在select事件中,将对象设置为该变量。例如:
$(function () {
var object_selected= -1;
$("#q").autocomplete({
source: "path/to/jsondata",
minLength: 3,
select: function (event, ui) { //This is the event that you need to implement
$('#q').val(ui.item.value);
object_selected = ui.item; //This is what you will use later.
return true;
}
});
});