2016-02-24 51 views
0

我试图使用Tokenfield插件 - http://sliptree.github.io/bootstrap-tokenfieldTokenfield - 只允许令牌从源头

我怎样才能限制只使用从源头令牌?

$('#tokenfield_platform').tokenfield({ 
autocomplete: { 
source: [ 
     {% for platform_item in platforms %} 
     '{{ platform_item }}', 
    {% endfor %} 
], 
delay: 100 
}, 
createTokensOnBlur:true, 
showAutocompleteOnFocus: true 
}).on('tokenfield:createtoken', function (event) { 
    var existingTokens = $(this).tokenfield('getTokens'); 
    $.each(existingTokens, function(index, token) { 
    if (token.value === event.attrs.value) 
     event.preventDefault(); 
    }); 
    //var available_tokens = bloodhound_tokens.index.datums; 
    // I do not want to use Twitter Typeahead, but only tokens from source 
    var exists = true; 
    $.each([available_tokens, function(index, token) { 
    if (token.value === event.attrs.value) 
     exists = false; 
    }); 
    if(exists === true) 
    event.preventDefault(); 
}); 

感谢您的任何信息。

回答

1

使用监听器tokenfield:createtoken您可以在创建令牌之前对其进行验证。

信息:http://sliptree.github.io/bootstrap-tokenfield/#events

$('#tokenfield_platform').on('tokenfield:createtoken', function (event) { 
    var exists = false; 
    $.each(yourSource, function(index, value) { 
      if (event.attrs.value === value) { 
       exists = true; 
      } 
    }); 
    if(!exists) { 
      event.preventDefault(); //prevents creation of token 
    } 
});