2017-03-21 3 views
5

Ich habe diese Zeile von Codes, die den gesamten Speicherort in meiner Datenbank erhalten, wenn Benutzer in mein Textfeld eingeben. Das Problem ist, dass ich validieren möchte, wenn der Benutzer den Text in meinem Textfeld ändert und nicht in meinem Typeahead vorhanden ist?Überprüfen Sie, ob der Wert von TextBoxt in TypeAhead existiert

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

Ich habe einige der Forschung mit .blur Funktion getan, aber ich kann es Arbeit?

ReferenceError: source is not defined 

Antwort

7

Dies ist ein Beispiel mit lokalen Daten. Boolesche Variable Etwas wird auf True gesetzt, wenn die Abfrage mindestens mit einem Element übereinstimmt.

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

Dies funktioniert. Vielen Dank. – Joseph

+0

Danke für die Bestätigung meiner Antwort. Könnten Sie bitte auch meine Antwort auffrischen? –

+0

Es funktioniert für mich – Sergey

Verwandte Themen