是否可以根据前一个问题的答案隐藏一个单选题的值?
例如:问题1(单选):隐藏一个单选选项。
问题1(单选): 红色或蓝色?
问题2(单选):10(仅红色),20(仅红色),(30仅蓝色),40(仅蓝色)。
如果用户选择蓝色,我不想显示10和20。
我无法将第二个问题分成两个,因为API属性需要相同。
因为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