Javascript-Проверьте, отображаются ли предложения при активном автозаполнении

Я пытаюсь определить, когда пользователь вводит данные с автозаполнением, если предложения отображаются браузером.

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

ПС. Мне это нужно, потому что я использую метод Ajax-запроса для входа в систему, и у меня есть проблема, когда пользователи нажимают enter по предложению: форма выполняет запрос на вход непосредственно на клавише press enter, и браузер показывает диалоговое окно, чтобы помнить только часть имени пользователя. Например, если пользователь решил запомнить «myusername», при следующем входе в систему он нажимает » my…», предложение отображается браузером (для автозаполнения), и когда выбор выбран и ввод нажат, браузер просит пользователя запомнить пароль для «my», но на самом деле он не должен был ничего запрашивать, потому что «myusername» уже был запомнен.

1 ответ

  1. Я не думаю, что вы могли бы сделать это, потому что предложения браузера не отображаются в дереве DOM.

    Вы должны сделать свой запрос Ajax, когда обычно форма будет отправлена. Таким образом, у вас будет полное имя пользователя, уже заполненное автозаполнением браузера. Вам просто нужно отменить событие отправки и сделать запрос Ajax вместо этого:

    В ГВт:

    loginForm.addSubmitHandler(new SubmitHandler() {
        @Override
        public void onSubmit(SubmitEvent event) {
            event.cancel();
            // Ajax request here...
        }
    });