Javascript 推特引导预输入强制选择

Javascript 推特引导预输入强制选择,javascript,jquery,twitter-bootstrap,bootstrap-typeahead,Javascript,Jquery,Twitter Bootstrap,Bootstrap Typeahead,我正在我的应用程序中使用Bootstrap Typeahead插件,下面是我的代码(这是一个示例)。 我正在寻找一种方法来验证用户的选择(基本上如果输入与任何结果不匹配->清空模糊框)。结果必须相符。我到处找,什么也找不到。非常感谢你的帮助 $('#search').typeahead({ source: function (query, process) { var states = []; var map = {};

我正在我的应用程序中使用Bootstrap Typeahead插件,下面是我的代码(这是一个示例)。 我正在寻找一种方法来验证用户的选择(基本上如果输入与任何结果不匹配->清空模糊框)。结果必须相符。我到处找,什么也找不到。非常感谢你的帮助

    $('#search').typeahead({
        source: function (query, process) {
            var states = [];
            var map = {};

            var data = [
                { "stateCode": "CA", "stateName": "California" },
                { "stateCode": "AZ", "stateName": "Arizona" },
                { "stateCode": "NY", "stateName": "New York" },
                { "stateCode": "NV", "stateName": "Nevada" },
                { "stateCode": "OH", "stateName": "Ohio" }
            ];

            $.each(data, function (i, state) {
                map[state.stateName] = state;
                states.push(state.stateName);
            });

            process(states);
        }
    });

如果提取出数据、状态和地图,则可以在
.blur
函数中使用它们进行查找:

 var data = [
            { "stateCode": "CA", "stateName": "California" },
            { "stateCode": "AZ", "stateName": "Arizona" },
            { "stateCode": "NY", "stateName": "New York" },
            { "stateCode": "NV", "stateName": "Nevada" },
            { "stateCode": "OH", "stateName": "Ohio" }
        ];
 var states = [];
 var map = {};

 $.each(data, function (i, state) {
    map[state.stateName] = state;
    states.push(state.stateName);
 });

 $('#search').typeahead({
    source: function (query, process) {
        process(states);
    }
}).blur(function(){
    if(states[$(this).val()] == null) {
      $('#search').val('');
    }
});

mccannf的解决方案是有效的,但在我的例子中,模糊事件的
if(parents.indexOf($(this.val())====-1){

可能的dup:-而不是警报,只需使用
.val('')
清空输入字段。谢谢你的帮助,但这似乎不起作用->检查是的。谢谢,伙计!