2017-03-21 38 views
5

Mam tę linię kodów, która otrzyma całą lokalizację w mojej bazie danych, gdy użytkownik wpisz w moim polu tekstowym. Problem polega na tym, że chcę sprawdzić, czy użytkownik zmienia tekst w moim polu tekstowym i czy nie istnieje w moim nagłówku?Sprawdź, czy wartość textboxt istnieje w 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'); 
}); 

Robiłem rozeznanie korzystając .blur funkcję, ale nie mogę dostać to działa?

ReferenceError: source is not defined 

Odpowiedz

7

To jest przykład z danymi lokalnymi. Zmienna boolean coś jest ustawione na true, jeśli zapytanie przynajmniej dopasowuje jeden element.

$(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

To działa. Dzięki. – Joseph

+0

Dzięki za potwierdzenie mojej odpowiedzi. Czy mógłbyś również przekazać moją odpowiedź? –

+0

To działa dla mnie – Sergey