jQuery标记 – 它只允许来自自动完成源的标记

前端之家收集整理的这篇文章主要介绍了jQuery标记 – 它只允许来自自动完成源的标记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试实现tag-it输入,除了我想限制用户只选择
自动完成框中的值.
我尝试使用源json覆盖beforeTagAdded事件并检查标记是否存在
在源属性但没有运气.

这是代码,请参阅beforeTagAdded函数.

$(document).ready(function () {
        var itemId;
        var theTags = $('#msg_to');
        theTags.tagit({
            autocomplete: {
                source: [{ id: "1",value: 'David'},{ id: "2",value: 'John' }],minLength: 0,select: function (event,ui) {
                    itemId = ui.item.id;
                    theTags.tagit("createTag",ui.item.value);
                }
            },showAutocompleteOnFocus: true,afterTagAdded: function (event,ui) {
                if (itemId) {
                    $(ui.tag).find('input').attr('name',"tag[\'" + itemId + "']['" + ui.tagLabel + "']");
                    itemId = null;
                }
            },beforeTagAdded: function (event,ui) {
                var id = ui.autocomplete.source; // not working

           // what to do next?
            }
        })
    });
</script>

提前致谢

解决方法

我的解决方
$(function() {     
   var currentlyValidTags = ['ac','dc'];
   $('input[name="_tags"]').tagit({
    availableTags: currentlyValidTags,autocomplete: { source: function( request,response ) {        
        var filter = removeDiacritics(request.term.toLowerCase());
        response( $.grep(currentlyValidTags,function(element) {
                        return (element.toLowerCase().indexOf(filter) === 0);
                    }));
    }},beforeTagAdded: function(event,ui) {
      if ($.inArray(ui.tagLabel,currentlyValidTags) == -1) {
        return false;
      }
    }          
  });    
});

猜你在找的jQuery相关文章