Выбор двух галочек из трех
Полю с тремя галочками добавить класс good-cheap-fast
Добавить на страницу следующий код
<script>
cr.api(function (page) {
page.lazy('.good-cheap-fast', function (el) {
var field = page.getComponent(el);
// Список активных галочек
var checked = Object.keys(field.value).filter(function (name) {
return field.value[name];
});
field.on('change', function (event) {
// Новый список активных галочек
var checked2 = Object.keys(field.value).filter(function (name) {
return field.value[name];
});
if (checked2.length === 3) {
// Выделены все 3 галочки, и нам нужно одно из выделений снять
// Создаем копию нового значения поля
var value2 = JSON.parse(JSON.stringify(field.value));
// В этой копии случайным образом снимаем выделение одной из галочек,
// которые уже были выделены до этого
value2[checked[Math.random() > 0.5 ? 0 : 1]] = false;
// Записываем новое значение поля
field.setValue(value2);
} else {
// Обновляем список активных галочек
checked = checked2;
}
});
});
});
</script>