Я разработал функцию поиска в своем приложении. Пользователи могут искать улицы, введя адрес в поле ввода. Onkeyup вызывается функция a, которая сравнивает входные данные с базой данных, полной адресов. Функция возвращает 5 предложений, которые показаны ниже входного поля, вроде своего рода dropdownmenu. Это прекрасно работает. Затем пользователь может выбрать одно из предложений, которое запускает другую функцию.keyCode 13 не работает
Что я хочу реализовать сейчас, так это то, что когда пользователь нажимает ENTER, вторая функция автоматически вызывается с первым предложением. Я думал, что это будет не так сложно программировать, но я сталкиваюсь с некоторыми трудностями. Когда я нажимаю кнопку ввода, страница обновляется, а не переходит к функции.
Вот мой код:
<div id = "toolbar">
<form id ="suggestions">
<input type = "text" id = "insertText" autocomplete="off" onkeyup = "if(event.keyCode == 13) {SearchAddress(option1.text)} else {giveSuggestion()}" onfocus='showOptions()'
<option class="option" id = "option1" onmousedown = "searchAddress(option1.text)"></option>
<option class="option" id = "option2" ... </option>
</form>
</div>
CSS
#toolbar {
position: fixed;
width: 100%;
height: 25px;
top: 0;
left: 0;
padding: 5px 10px;
background: #ccc;
border-bottom: 1px solid #333;
}
#suggestions {
-moz-box-sizing: border-box;
box-sizing: border-box;
position: absolute;
left: 310px;
top: 5px;
background-color: white;
font-size: 12px;
}
.option{
display:none;
cursor: default;
padding: 0px 3px;
}
Есть предложения?
Ваш код неправильный, насколько я могу видеть. – SjaakvBrabant
_ «страница обновляется» _ -> технически форма отправляется и не имеет действия, поэтому она отправляет ее обратно на ту же страницу, заставляя ее перезагружать. –
Вы забыли закрыть тег ввода. use event.preventDefault(); –