如果wicket中的输入文本字段不为空,则显示按钮

nle07wnf  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(357)

有输入文本字段和提交按钮。我想显示按钮文本字段不为空,否则按钮应该不可见。

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 这是工作,但我需要与隐藏/显示按钮相同的功能

ibps3vxo

ibps3vxo1#

由于您使按钮不可见,因此需要使用 submitBtn.setOutputMarkupPlaceholderTag(true); 而不是 submitBtn.setOutputMarkupId(true); 这很重要,因为没有 setOutputMarkupPlaceholderTag(true) wicket wicket不会为此组件渲染任何内容。具有 setOutputMarkupPlaceholderTag(true) 它将使 <htmlElement id="someId"></htmlElement> . 通过这种方式,wicket ajax可以在dom中找到它,并将其替换为可见的html。

相关问题