首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bootstrap Typeahead仅允许列表值

Bootstrap Typeahead仅允许列表值
EN

Stack Overflow用户
提问于 2012-12-06 20:18:36
回答 4查看 18.7K关注 0票数 15

是否可以将用户的选择限制为Bootstrap Typeahead项的预定义数据源项?那么,如果用户输入了不在数据源中的内容,就会显示一条消息来通知他们?

下面是演示:http://cruiseoutlook.com/test

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-06 20:59:51

如果我理解的话,当typeahead组件失去焦点时,如果它不在列表中,应该提醒用户它的输入是无效的?

因此,代码如下所示:

代码语言:javascript
运行
复制
var myData = [...]; // This array will contain all your possible data for the typeahead

$("#my-type-ahead").typeahead({source : myData})
                   .blur(validateSelection);

function validateSelection() {
    if(source.indexOf($(this).val()) === -1) 
        alert('Error : element not in list!');
}

但要注意的是,IE6-8中并没有实现indexOf。但是可以找到填充符,例如:Best way to find if an item is in a JavaScript array?

票数 18
EN

Stack Overflow用户

发布于 2015-01-20 19:38:07

我遇到了同样的问题,但在我的情况下,我所有的数据都是remote。据我所知,Bloodhound没有任何好的钩子可以让你做到这一点,但你可以挂接到ajax complete回调中,手动构建一个有效的输入缓存,然后在更改/模糊时进行检查。

代码语言:javascript
运行
复制
var myData = new Bloodhound({
    remote: {
        url: '/my/path/%QUERY.json',
        ajax: {
            complete: function(response){
                response.responseJSON.forEach(function (item) {
                    if (myData.valueCache.indexOf(item.value) === -1) {
                        myData.valueCache.push(item.value);
                    }
                });
            }
        }
    }
});
myData.valueCache = [];
myData.initialize();

$('#artists .typeahead').typeahead(null, {
    source: myData.ttAdapter()
}).bind('change blur', function () {
    if (myData.valueCache.indexOf($(this).val()) === -1) {
        $(this).val('');
    }
});
票数 6
EN

Stack Overflow用户

发布于 2013-04-24 23:39:48

使用jquery和Samuel的解决方案,我认为你会克服IE的问题。将validateSelecion函数更改为:

代码语言:javascript
运行
复制
function validateSelection() {
    if ($.inArray($(this).val(), myData) === -1) 
        alert('Error : element not in list!');
}

剩下的就像Samuel指出的那样。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13743498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档