user3217099
user3217099

Reputation: 11

Typeahead submit with enter

I'm using bootstrap typeahead and I'm wondering, how do I make it submit when clicking the enter button? In other words, if I typed "hello" into the typeahead input and pressed enter, how would I submit "hello"?

I've already made it so that the typeahead doesn't auto-select the first result.

This is my code:

<form method="POST" action="script.php">
    <input name="typeahead_field" class="typeahead" data-provide="typeahead" autocomplete="off" type="text">
</form>

jQuery:

$('.typeahead').typeahead({
    items: 10,
    source: function (query, process) {
        $.ajax({
            url: 'typeahead.php',
            type: 'POST',
            dataType: 'JSON',
            data: 'query=' + query,
            success: function(data) {
                process(data);
            }
        });
    },
    highlighter: function(data) {

        // code that returns each result

        return html;
    },
    updater: function(data) {
        // code that redirects the user if they click the selection
    },
});

Please help!

Upvotes: 1

Views: 5962

Answers (3)

ajm0824
ajm0824

Reputation: 45

works well, but doesn't highlight selection like mouse-over event does. Maybe this solution would work better as seems to encapsulate the gist of previous answer. https://bwbecker.github.io/blog/2015/08/29/pain-with-twitter-typeahead-widget/

Upvotes: 0

JuanXarg
JuanXarg

Reputation: 438

Old question, but worth answering. Here is a possible solution:

$('.typeahead').on('keydown', function(e) {
  if (e.keyCode == 13) {
    var ta = $(this).data('typeahead');
    var val = ta.$menu.find('.active').data('value');
    if (!val)
      $('#your-form').submit();
  }
}

EDIT: First attempt was very naive :)

Upvotes: 2

Sanjo
Sanjo

Reputation: 1250

You need a submit button to enable submit on enter. You can hide the button with this CSS:

<input type="submit" style="position: absolute; left: -9999px">

(from https://stackoverflow.com/a/477699/759971)

Upvotes: 1

Related Questions