2

我正在尝试使用 Tokenfield 插件 - http://sliptree.github.io/bootstrap-tokenfield

如何限制仅使用源中的令牌?

$('#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();
});

感谢您提供任何信息。

4

1 回答 1

3

使用侦听器 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
    }
});
于 2016-04-20T15:17:13.407 回答