【问题标题】:FormIO - Dynamic labels for Text Field based on the input data of another text fieldFormIO - 基于另一个文本字段的输入数据的文本字段动态标签
【发布时间】:2023-01-28 07:34:35
【问题描述】:

在我的表单中,我有 2 个文本字段,根据输入字段 1 的用户输入,第二个字段的标签应该更改。 输入1标签:姓名 输入2标签:用户,请输入您的年龄

现在,当用户输入姓名 John 时,标签 2 应从“用户,请输入您的年龄”更改为“约翰,请输入您的年龄”。

`

{
  "title": "Page 1",
  "label": "Page 1",
  "type": "panel",
  "key": "page1",
  "components": [
    {
      "label": "Name",
      "key": "name",
      "type": "textfield",
      "input": true,
      "tableView": true
    },
    {
      "label": "{{ row.name}}, Please enter your age",
      "redrawOn": "name",
      "key": "age",
      "type": "textfield",
      "input": true,
      "tableView": true
    }
  ],
  "input": false,
  "tableView": false
}

`

如果我将标签设置为“{{row.name}},请输入您的年龄”, 最初加载表单时,名称字段中不会有任何数据,因此第二个标签是“请输入您的年龄”。

在输入名称值之前是否可以有“用户”,即“用户,请输入您的年龄”?

【问题讨论】:

    标签: formio angular-formio


    【解决方案1】:

    这是我遵循的解决方法

    1. 在第二个字段标签中,将{{row.name}}更改为虚拟变量{{data.name1}}
    2. 根据第一个字段更改第二个字段重绘
    3. 在data.name为空时在计算值部分添加逻辑,将data.name1值设置为“User”,否则将data.name赋给data.name1 这是SN-P
      if (data.name === "") {
        data.name1="User";
      }else{
        data.name1=data.name;
      }
      

    【讨论】:

      猜你喜欢
      • 2020-03-14
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多