2012-02-01 127 views
-1

對於我節點應用我使用jQuery自動完成搜索person.Each人的名字搜索ID爲number.Now給出當我鍵入編號搜索列表中不應該顯示人的名字請在這裏指導。通過ID使用jQuery自動完成

+0

你可能已經嘗試過成才,你能證明你的代碼 – 2012-02-01 04:38:04

回答

0

像這樣的東西應該工作:

  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; 
     } 
    }); 
}); 
 

希望它可以幫助

0

謝謝你的答覆。我會提供我的代碼。

重點:

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來搜索該人,搜索列表應該只返回兩者的名字。