我正在使用tagit(http://webspirited.com/tagit/)并且到目前为止非常喜欢它。我只有一个难以克服的障碍。 如果我开始键入标记关键字,请改变主意然后单击页面上的其他位置(因此输入失去焦点),标记将被添加。我不希望这种情况发生。我希望只在选择了触发键时才添加标记 - 在我的例子中是逗号。否则,最后一个标签(可能是部分文本)应该只是坐在那里直到添加逗号。
这是我到目前为止的代码。非常基本的实现,但我没有看到防止上述情况的方法。
$('#thename').tagit({
tagSource:,
select:true,
tagsChanged:function (a, b) {
if(b=='added' || b=='popped'){
submitForm();
}
},
triggerKeys:new Array('comma')
});
答案 0 :(得分:2)
为这个做了一点点破解,我们会看到它是如何结果的。我无法在API中的任何地方找到不在焦点上添加标记的内容,因此我的下一个解决方案是执行以下操作:
- 键入标签
- 单击输入(以便添加标记)
- 以编程方式获取文本输入并删除标记 p>
使用以下代码尝试此操作:
$("#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标记。