根据条件隐藏FormIo单选选项?

问题描述 投票:0回答:1

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

例如:问题1(单选):隐藏一个单选选项。

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

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

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

我无法将第二个问题分成两个,因为API属性需要相同。

javascript radio formio
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.netairarrazavalbtpyfjm8

© www.soinside.com 2019 - 2024. All rights reserved.