有输入文本字段和提交按钮。我想显示按钮文本字段不为空,否则按钮应该不可见。
TextArea<String> textMessageField = new TextArea<>("textMessage", textMessageModel);
Button submitBtn = new Button("saveReminderButton") {
@Override
protected void onConfigure() {
super.onConfigure();
String text = textMessageField.getModelObject();
setVisible(text != null && !text.isEmpty());
}
};
textMessageField.add(new OnChangeAjaxBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(submitBtn);
}
});
submitBtn.setOutputMarkupId(true);
我想用 setVisible
方法 onConfigure
但它不起作用。我试着用它来代替 setEnabled
这是工作,但我需要与隐藏/显示按钮相同的功能
1条答案
按热度按时间ibps3vxo1#
由于您使按钮不可见,因此需要使用
submitBtn.setOutputMarkupPlaceholderTag(true);
而不是submitBtn.setOutputMarkupId(true);
这很重要,因为没有setOutputMarkupPlaceholderTag(true)
wicket wicket不会为此组件渲染任何内容。具有setOutputMarkupPlaceholderTag(true)
它将使<htmlElement id="someId"></htmlElement>
. 通过这种方式,wicket ajax可以在dom中找到它,并将其替换为可见的html。