2017-03-21 4 views
5

私のテキストボックスにユーザータイプを入力すると、データベースのすべての場所を取得するコード行があります。問題は、ユーザーが自分のテキストボックス内のテキストを変更して、自分の先読みに存在しないときに検証したいのですか?textboxtの値がTypeaheadに存在することを確認してください

var path = "{{ route('search.location') }}"; 

$('input.typeahead').typeahead({ 
    source: function (query, process) { 
     return $.get(path, { query: query }, function (data) { 
      return process(data); 
     }); 
    } 
}).blur(function() { 
    if(source.indexOf($(this).val()) === -1) 
     alert('Not exists'); 
}); 

私は.blur機能を使用していくつかの研究を行ってきたが、私はそれが仕事を得るカント?

ReferenceError: source is not defined 

答えて

7

これはローカルデータの例です。ブール変数は、クエリが少なくとも1つのアイテムに一致する場合はtrueに設定されます。

$(document).ready(function() { 

var data = [ 
    {value: "Alabama"}, 
    {value: "Delaware"}, 
    {value: "Maine"} 
]; 

var somethingFound = false; 

$("#the-basics .typeahead").typeahead(
{ 
    minLength: 1, 
    highlight: true 
}, 
{ 
    source: function(query, syncResults, asyncResults) { 
     // use query to filter data 
     var filteredData = data.filter(function(e){ 
     return e.value.toLowerCase().startsWith(query.toLowerCase()); 
     }); 
     console.log(filteredData.length); 
     somethingFound = filteredData.length > 0; 
    // return filtered data 
    syncResults(filteredData); 
    } 
}).blur(function(){ 
    if (!somethingFound) { 
    alert('nothing found'); 
    } 
}); 
}); 

see also in Plunker

+0

これは動作します。ありがとう。 – Joseph

+0

私の答えを確認してくれてありがとう。私の答えをアップしてもらえますか? –

+0

それは私のために働く – Sergey

関連する問題