2016-05-08 9 views
0

Ich Algolia instantsearch.js mit einer sehr einfachen Suchfeld und eine Suchfunktion, wie diese das Verhalten Suchfeld mit options.searchOnEnterKeyPressOnly geändert http://codepen.io/anon/pen/aNXLBV
Wie eine Suche mit instantsearch.js abzufeuern, wenn Klicken auf eine Schaltfläche

Ich habe mit Ich möchte auch eine Suche ausgelöst haben, wenn jemand auf die Schaltfläche Search klickt.

Ich bin mir sicher, dass dies ein RTFM-Problem ist, aber ich konnte nichts finden, weder in der Algolia general JS docs, noch sehen sie in einigen Aspekten wie zwei verschiedene Bestien aus.

Also wie kann ich eine Suche gefeuert haben beide auf Geben Sie oder klicken Sie auf die Search Schaltfläche?

Antwort

3

Angenommen, Sie auf eine Schaltfläche von id search-button und Suchfeld von id search-box

Wenn Sie jquery tun wie so sind useing ..

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

Ich habe das ähnliche Problem und ich habe diese Art und Weise haben. Hoffe, das wird funktionieren.

+0

Hey, das ist ein schöner Workaround, bis es behoben wird! Allerdings 'var query = trimmen ($ ('# search-box'). Val());' funktioniert nicht, sieht aus wie Sie PHP für die Trim hehe geliehen;) Ich habe Ihre Antwort bearbeitet, danke! – Gruber

0

können Sie binden nur Ihre Schaltfläche klicken/einreichen und rufen:

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

der Tat ist dies nicht etwas trivial/dokumentiert und macht es schwer zu wissen, wenn Sie nur instantsearch.js wissen.

Wir werden versuchen, es einfacher zu machen.

+0

[Ich habe meine vorige umgeschrieben. Kommentar, da ich nicht bearbeiten kann] Vielen Dank für Ihre Eingabe, aber ich habe es bereits versucht, aber da es "zurückgesetzt" war, dachte ich, dass etwas nicht in Ordnung ist, also fragte ich hier. Für Beispiel Versuchen Sie eine Suche und drücken Sie Enter, dann suchen Sie etwas anderes und klicken Sie auf die Schaltfläche: Sie werden sehen, dass Ihre neue Suche durch die vorherige ersetzt wird. Vielleicht stimmt etwas nicht mit meinem Code? Ich habe das verwendet: 'jQuery (" # search-btn "). Click (function() { search.helper.search(); }); ' – Gruber

+0

Können Sie ein JSfiddle einreichen, das das Problem demonstriert? Danke – vvo

+0

Sure Sache, ist ziemlich grob und basiert auf deinem Starting Actor Index. https://jsfiddle.net/khrkr8pj/2/ versuchen Sie etwas suchen und drücken Sie die Eingabetaste, dann versuchen Sie etwas anderes und klicken Sie auf Suche. Sie sollten sehen, dass der Suchbegriff auf den vorherigen zurückgesetzt wird. Vielen Dank! – Gruber

Verwandte Themen