2

我有一个表格,其中有 5 个TextField是必需的,25 个是可选的。我设置了所需的 TextFieldssetRequired(true)并在此字段为空时获取我想要的反馈消息。

但是,当 25 个字段为空但表单仍然正确提交时,我如何实现这样的效果,即在我的反馈面板中收到警告消息?我想通知用户这些字段是可选的,但如果他能填写它们会很好。

我知道我可以通过该程序onSubmit()添加警告。warn()但是在提交时我只能检查模型的这个值,我没有空的组件。但我想拥有Validators 的功能,这样我就可以对用户说Field 'optionalTextField1' 没有价值,但如果你填写它会很好,我可以使用消息的属性等等。

任何想法如何做到这一点?

4

2 回答 2

1

您可以实现自己的 IValidator 将组件作为变量传递并使用警告,例如

public void validate(IValidatable<String> validatable)
{
    String value = validatable.getValue();
    if (value.isEmpty())
    {
        component.warn("some nice message")
    }
}

只是一个例子,虽然没有测试

于 2013-06-26T00:26:59.847 回答
-1

通过覆盖checkRequired()解决了这个问题

 @Override
 public boolean checkRequired() {
    if (!isRequired() && getValue().isEmpty()) {
       warn("Field'" + getLabel().getObject() + "' is empty. We suggest to fill it.");
       return Boolean.TRUE;
    }
    return super.checkRequired();

 }

getLabel().getObject()要求你setLabel(Model.of("Nice field name"));

于 2013-06-26T08:14:03.180 回答