单击按钮时如何使用 instantsearch.js 触发搜索

How to fire a search with instantsearch.js when clicking on a button

我正在使用 Algolia instantsearch.js with a very simple search box and a search button like this http://codepen.io/anon/pen/aNXLBV

我已经用 options.searchOnEnterKeyPressOnly 更改了搜索框的行为,我希望当有人点击 Search 按钮时也触发搜索。

我确定这是一个 RTFM 问题,但我在这方面找不到任何东西,在 Algolia general JS docs 中也找不到,而且它们在某些方面看起来像两个不同的野兽。

那么如何在 Enter 或单击 Search 按钮时触发搜索?

您只需绑定您的按钮 click/submit 并调用:

// search = instantsearch(); ...
search.helper.search();

确实这不是什么 trivial/documented 并且当你只知道 instantsearch.js 时很难知道。

我们会尽量简化。

假设您有一个 ID 为 search-button 的按钮和一个 ID 为 search-box

的搜索框

如果您正在使用 jquery,请这样做..

var search = instantsearch({
    appId: algoliaCredential.appId,
    apiKey: algoliaCredential.searcKey,
    indexName: 'INDEXNAME'
});

search.start();

$('#search-button').on('click', function(){
    var query = $('#search-box').val().trim();
    search.helper.setQuery(query).search(); //Set the query and search
})

我遇到了类似的问题,我也是这样做的。希望这会奏效。