2014-12-03 43 views
-1

我正在使用jQuery自动完成来允许用户在完成表单时搜索和选择多个项目。一旦选择了一个项目,用户可以从所选项目列表中删除该项目。隐藏已选择的项目jQuery自动完成

我希望能够做的是隐藏将来的搜索选定的项目,并显示在未来的搜索的项目应在项目被删除:

这是我当前的脚本:

var commissioner = []; 

$.getJSON('/Commissioner/AutocompleteSearch') 
    .done(function (data) { 
     commissioner = data; 
     $('#commissioner').autocomplete({ 
      minLength: 3, 
      source: function (request, response) { 
       var results = $.ui.autocomplete.filter(commissioner, request.term); 
       response(results.slice(0, 10)); 
      }, 
      select: function (event, ui) { 
       $(this).val(''); 
       var li = '<li>'; 
       li += '<input type="hidden" name="CommissionerId" value="' + ui.item.id + '" />' 
       li += ui.item.label + '<span class="delete">Delete</span>'; 
       li += '</li>'; 
       $('#selectedCommissioners').append(li); 
       $('#selectedCommissioners li.none').hide(); 
       return false; 
      } 
     }) 
    }); 

$('#selectedCommissioners').on('click', '.delete', function() { 
    var $el = $(this).parent(); 
    $el.remove(); 

    if ($('#selectedCommissioners li').length == 1) { 
     $('#selectedCommissioners li.none').show(); 
    } 
}); 

回答

0

在您的源代码函数中,您应该在结果集上运行另一个filter,删除已选中的结果。因此,您可能希望按照您在结果集中获得的格式保留所选值的集合,以便它们可以1:1比较

+0

您能否提供一些示例代码? – mheptinstall 2014-12-03 12:39:29