0

我想使用带有预输入值的引导标记输入 jquery 插件。它的效果很好,因为我在输入时看到了预先输入的值,但我想这样做,这样用户就不能输入他们自己的值。遵循来自http://timschlechter.github.io/bootstrap-tagsinput/examples/bootstrap3/的文档。我尝试了 freeInput: false 变量,但它仍然允许任何条目。这是代码:

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

看到我做错了什么吗?

4

1 回答 1

1

此代码不起作用,因为您的代码中有一些错误:1) https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#datasets 应该是函数 2)更改'typehead' 到 '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
    });
于 2014-08-22T11:33:26.547 回答