1

是否可以根据上一个问题的答案隐藏单选选项值?

例如:

问题 1(单选):红色还是蓝色?

问题 2(单选):10(仅红色)、20(仅红色)、(30 仅蓝色)、40(仅蓝色)

如果用户选择蓝色,我不想显示 10 和 20。

我无法将第二个问题一分为二,因为 API 属性必须相同。

4

1 回答 1

0

由于 formiojs@4(可通过https://next.form.io获得)组件可以选择定义特定的逻辑。因此,您可以根据不同的条件(例如事件或自定义 javascript)更改组件本身。

基本上,只要颜色组件有值,您就会想要触发逻辑(因此它不会在每次更改时触发不必要的)。在此更改中,您可以根据颜色值更新组件值。此外,如果新选项不包括其当前值,则清除组件的值。

例如,您可以执行以下操作:

var values = [];

if (data.color === 'red') {
  values.push(10, 20);
} else if (data.color === 'blue') {
  values.push(30, 40);
}

if (!values.includes(data.option)) {
  delete data.option;
}

schema = {
  values: values.map((value) => ({ label: value.toString(), value })),
};

检查以下 jsfiddle 以获取工作示例:https ://jsfiddle.net/airarrazaval/btpyfjm8/

于 2020-06-17T17:11:22.933 回答