通过ID使用jQuery自动完成

问题描述:

对于我节点应用我使用jQuery自动完成搜索person.Each人的名字搜索ID为number.Now给出当我键入编号搜索列表中不应该显示人的名字请在这里指导。通过ID使用jQuery自动完成

+0

你可能已经尝试过成才,你能证明你的代码 – 2012-02-01 04:38:04

像这样的东西应该工作:

  1. 现有的输入字段的更改名称不管它是加_autocomplete_label(例如)。
  2. 与原始输入元素的name属性值(这将包含我的ID值)创建一个隐藏的输入字段。
  3. 创建给定的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来搜索该人,搜索列表应该只返回两者的名字。