Autocomplete manual search to first result on submit

This commit is contained in:
David Tolnay committed 2015-10-13 10:48:06 -07:00
1 parent e3c36777ab
commit 4a886f831c
2 files changed
+22 -11

No files matched your search

+21 -10
View File
@@ -1,4 +1,7 @@
var section_names = function(q, cb) {
var section_names = function(q) {
if (!q) {
return [];
}
var matches = [];
q = q.toLowerCase();
$.each(section_map, function(k, v) {
@@ -10,23 +13,31 @@ var section_names = function(q, cb) {
// shortest to longest
return a.length - b.length;
});
cb(matches);
return matches;
}
var go_to_section = function(section) {
if (section in section_map) {
location.hash = '#' + section_map[section];
var section_names_cb = function(q, cb) {
cb(section_names(q));
}
var go_to_section = function() {
query = $('#searchbox').val();
results = section_names(query);
if (results.length == 0) {
return;
}
result = results[0];
location.hash = '#' + section_map[result];
if (result != query) {
$('#searchbox').val(result);
}
}
$(function(){
$('#searchbox').typeahead(
{hint: false, highlight: true, minLength: 1},
{name: "contents", source: section_names, limit: 6}
{name: "contents", source: section_names_cb, limit: 6}
).on('typeahead:selected', function(e, data) {
go_to_section($(this).val());
});
$('#searchbox').change(function() {
go_to_section($(this).val());
go_to_section();
});
$('#searchbox').change(go_to_section);
});
// add "Run" button to execute examples on jqplay.org
$(function() {
+1 -1
View File
@@ -16,7 +16,7 @@
</li>
{% endfor %}
</ul>
<form class="form-group">
<form class="form-group" onsubmit="go_to_section(); return false;">
<input type="text"
class="form-control"
placeholder="Search"