通过ID使用jQuery自动完成
问题描述:
对于我节点应用我使用jQuery自动完成搜索person.Each人的名字搜索ID为number.Now给出当我键入编号搜索列表中不应该显示人的名字请在这里指导。通过ID使用jQuery自动完成
答
像这样的东西应该工作:
- 现有的输入字段的更改名称不管它是加_autocomplete_label(例如)。
- 与原始输入元素的name属性值(这将包含我的ID值)创建一个隐藏的输入字段。
- 创建给定的jQuery用户界面自动完成实例的自定义选择事件处理程序。
一些示例代码:
$('input.your_AutocompleteClassForInputField').each(function() {
var autoCompelteElement = this;
var formElementName = $(this).attr('name');
var hiddenElementID = formElementName + '_autocomplete_hidden';
/* change name of orig input */
$(this).attr('name', formElementName + '_autocomplete_label');
/* create new hidden input with name of orig input */
$(this).after("<input type=\"hidden\" name=\"" + formElementName + "\" id=\"" + hiddenElementID + "\" />");
$(this).autocomplete({source:'your_source_file_name',
select: function(event, ui) {
var selectedObj = ui.item;
$(autoCompelteElement).val(selectedObj.label);
$('#'+hiddenElementID).val(selectedObj.value);
return false;
}
});
});
希望它可以帮助
答
谢谢你的答复。我会提供我的代码。
重点:
function() {
$('#search_input').catcomplete({
appendTo: $('#searchresults'),
source : function(request, response) {
var filterValues = [];
_.each(that.categories, function(category) {
if (category.terms !== undefined && category.terms.length > 0) {
filterValues = filterValues.concat($.ui.autocomplete.filter(category.terms, request.term));
}
});
response(filterValues);
},
select : function(event, ui) {
$('#search_input').trigger('submit', ui.item);
}
});
}
当我输入编号返回列表上的ID,但我不想在搜索列表上显示的ID,而不是它应该显示的名称。所以用户应该能够通过名字以及id来搜索该人,搜索列表应该只返回两者的名字。
你可能已经尝试过成才,你能证明你的代码 – 2012-02-01 04:38:04