2015-05-29 4 views
0

Как проверить, что в списке (повторителе) выбрано не более одного флажка?Подтвердить не более или макс. 1 включен в списке калитки

У меня есть форма с ListView в Wicket со следующей структурой:

линию 1 к п: AjaxCheckBox и TextField

Оба элемента соединены CompoundPropertyModel<SimpleType>. POJO SimpleType выглядит так:

public class SimpleType { 
    private boolean enabled; 
    private String value; 

    Getter/Setter... 
} 

Если выбрано более одного флажка, форма должна отклонить любые изменения. Поэтому перед тем, как выбрать другой флажок, пользователь должен отменить выбранный флажок. Я пробовал с окружением CheckGroup с IValidator<Collection<SimpleType>>, но мне нужно изменить AjaxCheckBox на компонент Check. В этом случае Check, похоже, не обновляется с состоянием enabled от CompoundPropertyModel.

Действительно ли мне нужен валидатор или посетитель для этого случая? Как их реализовать?

+0

Почему бы вам не использовать переключатель? –

+0

У меня была такая же идея, но у пользователя должен быть выбор, чтобы отменить выбор свойства «включено». Ничего не выбрано, это допустимый вариант, означает, что все элементы в списке отключены. – steffen

ответ

0

Поскольку радио не вариант здесь простое решение, которое должно работать:

Для использования проверки IFormValidator, который посещает все AjaxCheckBox-эс.

Для немедленного ответа UI я бы использовал простой JS, который отменяет установленный флажок. Это вызовет вызов Wicket Ajax, чтобы отменить его также на стороне сервера. После отправки полной формы IFormValidator выполнит свою работу.

+0

Дополнительный IFormValidator - это то, что я искал. Работает так, как ожидалось. Спасибо, мартин-г! – steffen

 Смежные вопросы

  • Нет связанных вопросов^_^