У меня есть прослушиватель событий, который ищет нажатие клавиши ввода в поле ввода. Кроме того, рядом с полем отправки есть кнопка, которую пользователь может щелкнуть, которая отправляет данные и запускает функцию. На клавиатуре я напрямую вызываю функцию.
Проблема в том, что эта функция работает только при нажатии Enter во второй раз. Пример: я ввожу число и нажимаю клавишу ВВОД, страница переходит в режим загрузки, как и должно быть, но на странице ничего не отображается. Если я снова нажму на поле ввода (не изменяя введенное число) и снова нажму клавишу ввода, он перейдет в режим загрузки, а затем отобразит имеющиеся у меня графики.
Я не уверен, почему это работает второй раз, но не первый? Я видел несколько сообщений о нажатии один раз, вызывающих несколько вызовов функций, но я не могу найти ничего, что вам нужно сделать событие дважды, чтобы получить один вызов функции.
Вот jQuery для клавиши ввода
document.getElementById('SN').addEventListener("keyup", function (event) {
if (event.keyCode === 13) {
self.getInformation();
}
});
Вот поле ввода.
<div class="col-md-3">
<label class="control-label" for="SN">Serial Number</label>
<input class="form-control text-box single-line" id="SN" name="SN" type="number" data-bind="value: SN" />
</div>
Вот кнопка, которая работает, когда пользователь фактически нажимает вместо ввода введите в поле ввода.
<div class="col-md-offset-6 col-md-3 col-md-push-3">
<label></label>
<button id="getInformationBtn" class="btn btn-success btn-block" data-bind="click: getInformation">Get Information</button>
</div>