У нас есть приложение Java-EE на базе Wicket.
Проблема в том, что когда вы хотите автоматически заполнить имя пользователя и пароль с приглашением цепочки для ключей от Safari, сервер не может зарегистрировать имя пользователя, потому что Safari со связкой ключей не отправляет обратный вызов Ajax, который сервер должен поймать с помощью метода ajax:
/**
* @param target
* The AJAX target
*/
protected abstract void respond(AjaxRequestTarget target);
Как должен выглядеть html-код текстового поля или javascript этого компонента для отправки обратного вызова ajax при заполнении из цепочки для ключей Apple?
Спасибо за любой ответ.
Я предполагаю, что у вас есть HTML-форма с полем ввода текста для имени пользователя, полем пароля для пароля и кнопкой (ajax?!) для отправки формы.
Вам нужно активировать прослушиватель кликов кнопки, как только поля имени пользователя и пароля будут заполнены функцией автозаполнения Safari.
Если Safari запускает событие после их заполнения, код JS будет выглядеть примерно так:
$('#passwordId').on('change', function(evt) {
if ($('#usernameId').value() && $('#passwordId').value()) {
$('#buttonId').click();
}
});
Выше я предполагаю, что Safari запускает событие change
после автоматического заполнения поля пароля. Затем, если поля имени пользователя и пароля не пусты, я нажимаю кнопку. Это приведет к нормальному поведению этой кнопки, т.е. она сделает (Ajax) вызов на сервер, а Wicket сделает все остальное.
Да, я использовал что-то подобное - field.addEventListener("input", function(event). Спасибо. :)