tagit在点击时添加标签

时间:2013-03-15 21:28:59

标签: jquery jquery-autocomplete tag-it

我正在使用tagit(http://webspirited.com/tagit/)并且到目前为止非常喜欢它。我只有一个难以克服的障碍。 如果我开始键入标记关键字,请改变主意然后单击页面上的其他位置(因此输入失去焦点),标记将被添加。我不希望这种情况发生。我希望只在选择了触发键时才添加标记 - 在我的例子中是逗号。否则,最后一个标签(可能是部分文本)应该只是坐在那里直到添加逗号。

这是我到目前为止的代码。非常基本的实现,但我没有看到防止上述情况的方法。

 $('#thename').tagit({
      tagSource:, 
      select:true,
      tagsChanged:function (a, b) {
         if(b=='added' || b=='popped'){
            submitForm();
         }
       },
      triggerKeys:new Array('comma')
   });

1 个答案:

答案 0 :(得分:2)

为这个做了一点点破解,我们会看到它是如何结果的。我无法在API中的任何地方找到不在焦点上添加标记的内容,因此我的下一个解决方案是执行以下操作:

- 键入标签
- 单击输入(以便添加标记)
- 以编程方式获取文本输入并删除标记

使用以下代码尝试此操作:

$("#thename").focusout(function() {
    //Get the input text
    var tagText = $(this).val();

    //Verify input is NOT empty

    //Remove the tag that was just added
    $("#thename").tagit('removeTag', tagText);

});

让我知道这是如何运作的。

编辑:

刚刚注意到你的评论。如果您不想允许新标签,请添加

allowNewTags: false,

原始代码中的tagit标记。