@SvetlanaDubovik

Не могу написать скрипт, обрабатывающий нажатие Enter и нажатие button в форме.?

Здравствуйте. Подскажите, пожалуйста. Есть на сайте поле поиска с автозаполнением
<div class="header-nav header-nav-options">
    <form class="searchForm" >
          <div class="form-group">
                <div class="input-group searchInput" style="margin-top: 20px">
                       <div class="input-group-content content-lg">
                             <input type="text" class="form-control typeahead focused" id="typeahead" name="headerSearch" placeholder="Введите ИНН, ОГРН, название, адрес или ФИО" autocomplete="off" spellcheck="false" onkeydown="goToPage('#typeahead');">
                         </div>
                   <div class="input-group-btn" style="padding-left: 0px">
                            <button class="btn btn-default searchBtn" type="button" style="border-bottom-width: 2px" id="searchBtn"><i class="fa fa-search searchBtn"  onclick="goToPage('#typeahead');"></i></button>
                    </div>
                </div>
        </div>
    </form>
 </div>

Мне нужно написать скрипт, который будет по нажатию пользователем Enter или кнопки считывать значение инпута и перенаправлять пользователя на другую страницу. Считать значение и перенаправить на другую страницу я смогу, а вот вызвать функцию, которая проверит на нажатие enter у меня не получается(((( Помогите, пожалуйста

P.S. Думала, повесить проверку на событие submit формы. Но не придется ли тогда вместо button вставить input type=submit? А если менять на инпут, как тогда мне вставить иконку поиска?
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
cashalot
@cashalot
Если я вам помог - пометьте мой ответ как решение
Нужно считывать не нажатие enter, а отправку формы, так как форма также отправится по нажатию enter.
$("form").submit(function(){
alert("jkjk");
retrurn false;
});

Код, который должен выполняться, нужно указать до return false; иначе он работать не будет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
XXXXPro
@XXXXPro
Fullstack Web developer
Есть два варианта: либо ловить событие keyup, и проверять, что код нажатой клавиши равен 13 (он хранится в event.which) , и по нему реагировать.
Либо сделать, как порекомендовал Михаил Захаров, но на input менять ничего не надо, можно для тега button прописать type="submit" вместо type="button", и она будет вызывать отправку формы.
Второй вариант в целом проще в реализации, и более красив и логичен.
Ответ написан
Комментировать
просто поменяй у кнопки type="button" на type="submit", и тогда форма будет сабмититься по интеру
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы