問題

私は自分のアプリでBootstrap Typeaherプラグインを使用しています。ここに私のコードがあります(例です)。 私はユーザーの選択を検証する方法を探しています(基本的に入力が結果と一致しない場合 - >ぼかしでボックスを空にする)。結果は一致する必要があります。私はどこでも検索し、物を見つけることができませんでした。あなたの助けは高く評価されます。

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

  同じタグがついた質問を見る

javascriptjquerytwitter-bootstrapbootstrap-typeahead