我们有基于Wicket的Java-EE应用程序。
问题是,当你想用Safari的keychain提示自动填充用户名和密码时,服务器无法注册用户名,因为带钥匙串的Safari不会发送Ajax回调,哪个服务器需要用ajax方法捕获:
/**
* @param target
* The AJAX target
*/
protected abstract void respond(AjaxRequestTarget target);
当从Apple密钥链填写时,该组件的textfield或javascript的html代码应该如何发送ajax回调?
谢谢你的回答。
我猜你有一个HTML表单,其中包含用户名的文本输入字段,密码的密码字段和提交表单的(ajax?!)按钮。
只要用户名和密码字段被Safari自动填充功能填充,您就需要触发按钮的单击监听器。
如果Safari在填充之后触发事件,则JS代码将类似于:
$('#passwordId').on('change', function(evt) {
if ($('#usernameId').value() && $('#passwordId').value()) {
$('#buttonId').click();
}
});
上面我假设Safari在自动填写密码字段后触发change
事件。然后,如果用户名和密码字段都是非空的,我单击按钮。这将导致此按钮的正常行为,即它将对服务器进行(Ajax)调用,Wicket将完成剩下的工作。