8

私は自分のアプリで 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);
    }
});
4

2 に答える 2

12

データ、状態、およびマップを抽出すると、.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('');
    }
});
于 2013-02-12T11:20:22.090 に答える
0

mccannf の解決策は機能しますが、私の場合はif(parents.indexOf($(this).val()) === -1) {on blur イベントです。

于 2014-09-12T19:49:48.053 に答える