我有一个表格,其中我需要5 TextField
个,其中25个是可选的。我设置了所需的TextFields setRequired(true)
,并在此字段为空时获取我想要的反馈消息。
但是,当25个字段为空但表单仍然正确提交时,我如何实现这样的效果以便在我的反馈面板中收到警告消息?我想通知用户这些字段是可选的,但如果他填写它们会很好。
我知道我可以onSubmit()
通过warn()
程序添加警告。但是在提交中我只能检查模型的这个值,我没有组件是空的。但是我想拥有Validator
s的功能,这样我就可以告诉用户字段'optionalTextField1'没有价值,但是如果填写它会很好,我可以消息的用户属性等。
任何想法如何做到这一点?
答案 0 :(得分:1)
你可以实现自己的IValidator传递componente作为变量并使用warn,例如
public void validate(IValidatable<String> validatable)
{
String value = validatable.getValue();
if (value.isEmpty())
{
component.warn("some nice message")
}
}
只是一个例子,虽未经过测试
答案 1 :(得分:-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"));