【问题标题】:Hide already selected items jQuery Autocomplete隐藏已经选择的项目jQuery自动完成
【发布时间】:2014-12-03 18:36:41
【问题描述】:

我正在使用 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();
    }
});

【问题讨论】:

    标签: javascript jquery autocomplete


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-12-25
      • 2011-09-05
      • 2012-05-02
      • 2012-09-01
      • 2022-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多