在我的检票口应用程序中,我有 3 个复选框:
add(new CheckBox("1").setOutputMarkupId(true));
add(new CheckBox("2").setOutputMarkupId(true));
add(new CheckBox("3").setOutputMarkupId(true));
表单还包含取消选择复选框的行为
add(new AjaxEventBehavior("onclick") {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
List<Component> components = new ArrayList<Component>();
if (target.getLastFocusedElementId() != null) {
if (target.getLastFocusedElementId().equals("1")) {
components.add(get("2"));
components.add(get("3"));
} else if (target.getLastFocusedElementId().equals("2")) {
components.add(get("1"));
} else if (target.getLastFocusedElementId().equals("3")) {
components.add(get("1"));
}
for (Component component : components) {
component.setDefaultModelObject(null);
target.add(component);
}
}
}
});
这在 mozilla 浏览器上运行良好,但在 chrome 中这不起作用。我怎样才能改进在 chrome 上工作呢?
更新
问题出在:
target.getLastFocusedElementId()
在 Mozilla 这返回我想要的,但在 chrome 中它总是返回 null 但我不知道
更新 2
谷歌浏览器在焦点元素中有错误:
所以我需要以其他方式做到这一点