我有这行代码,当用户在我的文本框中输入时,它将获取我数据库中的所有位置.问题是我想在用户更改文本框中的文本时验证并且在我的预先输入中不存在?
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
解决方法
这是本地数据的示例.如果查询至少匹配一个项,则布尔变量something设置为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'); } }); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。