有人可以告诉我,我如何从radiobutton获得价值来验证它?
我试过这样的事情:
binder = new Binder<>();
SelectionItemConverter selectionItemConverter = new SelectionItemConverter(radioOptions);
binder.forField(radioButtonGroup).withConverter(selectionItemConverter).asRequired("Mandatory")
.bind(e -> getValue(), (b, v) -> setValue(v));
binder.setBean(this);
首先我开始使用asRequired(&#34; Mandatory&#34;)验证器,但我看不到我的字段旁边的红色星号。有没有人知道一个关于diffrent的好教程而不是字符串验证表?
答案 0 :(得分:0)
您可以使用普通验证器验证的单选按钮值。如果您使用枚举值,则无法验证用户输入,因为用户可以选择有效值。
如果您希望针对其他字段验证枚举值,则可以添加一个验证器,将该字段的当前值与其他字段进行比较。重要的是要记住在绑定器中添加值更改侦听器,以便在第二个字段更改时触发验证。
RadioButtonGroup<RadioSelection> radioButtonGroup = new RadioButtonGroup<>("Answer");
radioButtonGroup.setItems(RadioSelection.values());
binder.forField(radioButtonGroup)
.asRequired("Mandatory")
.withValidator(value -> !(isToday(dateField) && value == RadioSelection.MAYBE),
"Cannot answer MAYBE today")
.bind(MyBean::getRadioSelection, MyBean::setRadioSelection);
binder.addValueChangeListener(v -> binder.validate());
同时阅读Book of Vaadin about validation。
示例中使用的枚举是
public enum RadioSelection {
YES, NO, MAYBE
}