jQuery Ввод функции keyup необходимо дважды нажать, прежде чем вызывать функцию - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть прослушиватель событий, который ищет нажатие клавиши ввода в поле ввода. Кроме того, рядом с полем отправки есть кнопка, которую пользователь может щелкнуть, которая отправляет данные и запускает функцию. На клавиатуре я напрямую вызываю функцию.

Проблема в том, что эта функция работает только при нажатии 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>
...