Jquery多选自动完成触发器

时间:2013-04-12 10:53:38

标签: jquery autocomplete multi-select

使用

http://wilker-dev.com/jquery-multiselect/自动填充插件。

我想触发添加此插件的事件,点击带有值的复选框。

我该怎么做?

这是我的代码

$('.sampleCats').live('click',function(){
    var catName = $(this).data('name');
    var searchCatData = $("#searchCat").val();
    var ele = '<a class="bit bit-box" data-name="'+catName+'">'+catName+'<a class="closebutton"></a></a>';
    if($(this).is(':checked'))
    {
        $("#searchCatBox .jquery-multiselect").prepend(ele);
        if(searchCatData)
        {
            $("#searchCat").val(searchCatData+','+catName);
        }
        else
        {
            $("#searchCat").val(catName);
        }
    }
    else
    {
        searchCatData = searchCatData.split(',');
                    $("#searchCat").val(searchCatData.join(','));
        $("#searchCatBox .jquery-multiselect").find("a.bit-box").each(function() {
            if ($(this).data("name") === catName) {
                return $(this).remove();
            }
        });
    }
});

添加除关闭链接之外的数据及其在选中和取消选中复选框时的添加和删除...

1 个答案:

答案 0 :(得分:0)

您可以尝试类似

的解决方法
   $(".checkboxClss").click(function(){
      var htmlToAdd = '<a class="bit bit-box">'+this.value+'<a class="closebutton"></a></a>';
      $('.jquery-multiselect').append(htmlToAdd);
    }); 

当您添加任何元素时,此插件会将新的锚元素添加到类jquery-multiselect的div中,因此您可以执行相同的操作,而不是手动触发添加事件。 PS:我从未使用过这个插件,所以只检查了源代码并提出了解决方法,只有在没有得到任何其他合适的解决方案时才使用。

检查源代码时

close = $(document.createElement("a"));
        close.addClass("closebutton");
        close.click(__bind(function() {
          return this.remove(a.data("value"));
        }, this));
        a.append(close); 

只是四处玩,看看你是否可以手动绑定它。