2015-12-28 2 views
3

В настоящее время я пытаюсь настроить автозаполнение в поле поиска. Я использую рельсы4-автозаполненный драгоценный камень. Я прочитал документацию здесь: https://github.com/peterwillcn/rails4-autocomplete и выполнил все шаги, чтобы заставить ее работать, и она работает. Я начинаю печатать в окне поиска, и я получаю ожидаемые результаты.Uncaught TypeError: this.source не является функцией при использовании rails4-autocomplete

Следующим шагом было реализовать функцию поиска по одному клику. Когда я нажимаю на один из предложений автозаполнения, я хочу, чтобы сайт перешел на соответствующую страницу для этого элемента. Я использовал советы на этой странице под названием автозаполнение Магии с Rails на http://www.yoniweisbrod.com/autocomplete-magic-with-rails/

В основном вы добавляете крючок событий, отправляет кнопку поиска при выборе пункта.

$(document).ready(function() { 
    $('.search-query').bind('railsAutocomplete.select', function(event, data { 
    $('.search-me').trigger('click') 
    }); 
}); 

Этот вид работ, когда я его реализации, как иногда, когда я щелкаю по этому пункту я хочу это идет на страницу, а в остальное время он никуда не идет. Он просто заполняет текстовое поле информацией о товаре, но не отправляет его. В этих случаях я получаю ошибку JQuery, который читает:

Uncaught TypeError: this.source is not a function - autocomplete.self-3befc48aba87cead090cfd014562b2771a662ac6d2c8197b24c08b2d9f3d9f2d.js?body=1:440 

Обновление страницы устраняет проблему, которая привела меня думать, мой Javascript не нагружал в правильном порядке. Поэтому я применил jQuery Turbolinks gem, чтобы убедиться, что событие jQuery всегда загружается без обновления страницы. Это не помогло.

Для информационных целей, мой JQuery выглядит следующим образом:

$("#username").autocomplete({ html: true }); 

Установка опции HTML для истинно позволяет мне оказывать HTML в результатах поиска.

Я был гуглингом, но пока не повезло. Любые идеи, кто-нибудь? Благодаря!

ответ

0

Я верю, что ты не был добавлен источник в autocomplete:

var data = ['one', 'two']; 
$("#your-id").autocomplete({ 
    data 
}); 
+0

Спасибо за предложение. К сожалению, указание источника на автозаполнение, похоже, не имеет значения. – Nic

+0

попробуйте следующее: '$ (" # your-id "). Autocomplete ({source: data}); –

+0

Это именно то, что я сделал, но не повезло: $ ("#username") .autocomplete ({html: true}, {source: source_array}); – Nic

Смежные вопросы