使用类型提前freeInput输入的Bootstrap标签

时间:2014-07-24 21:23:43

标签: jquery twitter-bootstrap bootstrap-typeahead bootstrap-tags-input

我想使用带有typeahead值的bootstrap标签输入jquery插件。它的效果非常好,因为我看到输入值是我输入的,但我想这样做,以便用户无法输入自己的值。遵循http://timschlechter.github.io/bootstrap-tagsinput/examples/bootstrap3/的文档。我尝试了freeInput:false变量,但它仍允许任何输入。这是代码:

$('#topics').tagsinput({
      typeahead: {
          source: ['one', 'two', 'three'],
          freeInput: false
        }
    }); 

看到我做错了什么?

1 个答案:

答案 0 :(得分:1)

此代码不起作用,因为您的代码中有一些错误: 1) https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#datasets 来源应该是功能 2)改变'打字头' to' typeheadjs'和自由输入作为参数发送到标签输入

    var substringMatcher = function(strs) {
    return function findMatches(q, cb) {
    var matches, substrRegex;

    // an array that will be populated with substring matches
    matches = [];

    // regex used to determine if a string contains the substring `q`
    substrRegex = new RegExp(q, 'i');

    // iterate through the pool of strings and for any string that
    // contains the substring `q`, add it to the `matches` array
    $.each(strs, function(i, str) {
    if (substrRegex.test(str)) {
    // the typeahead jQuery plugin expects suggestions to a
    // JavaScript object, refer to typeahead docs for more info
    matches.push({ value: str });
    }
    });

    cb(matches);
    };
    };

    var states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
    'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii',
    'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
    'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota',
    'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire',
    'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota',
    'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island',
    'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont',
    'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'
    ];        
    $('#the-basics .typeahead').tagsinput({
    typeaheadjs: {
        source: substringMatcher(str)
    },
    freeInput: false
    });