1

Я использую bootstrap typeahead, и мне интересно, как мне заставить его отправить при нажатии кнопки ввода? Другими словами, если я набрал «привет» в ввод типа ввода и нажал кнопку ввода, как бы отправить «привет»?Typeahead submit with enter

Я уже сделал это так, чтобы typeahead не автоматически выбирал первый результат.

Это мой код:

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

Пожалуйста, помогите!

ответ

1

Вам нужна кнопка отправки, чтобы включить отправку для входа. Вы можете скрыть кнопку с этим CSS:

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

(от https://stackoverflow.com/a/477699/759971)

0

Старый вопрос, но стоит ответить. Вот одно из возможных решений:

$('.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: Первая попытка была очень наивная :)