You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Form.io Data-Grid组件中动态修改特定行文本框的disabled属性?

解决Form.io Data-Grid行内组件按需启用的问题

方法一:利用组件Logic标签实现(推荐)

你可以直接在title子组件的Logic设置里配置条件规则,自动根据当前行的id和userId值控制启用状态:

  • 进入Data-Grid内的title文本框组件设置面板,切换到Logic标签
  • 在Enabled区域点击Add Rule,添加一条规则
  • 规则配置:
    • 左侧值选择Custom Value,输入row.id(Form.io中row代表当前数据行的上下文)
    • 操作符选择Equals
    • 右侧值选择Custom Value,输入row.userId
  • 保存设置后,当某行的id和userId相等时,该行的title组件会自动变为可编辑状态,反之保持禁用。

方法二:加载数据时直接设置组件状态(备选)

如果需要在数据加载阶段就提前处理状态,也可以修改你现有的loadData函数,在构建每行数据时添加title组件的禁用状态控制:

var gridData = [];
function loadData() {
  var apiUrl = "https://jsonplaceholder.typicode.com/posts";
  fetch(apiUrl)
    .then(response => response.json())
    .then(data => {
      data.forEach(function(row) {
        const isTitleEnabled = row.id === row.userId;
        gridData.push({
          "id": row.id,
          "userId": row.userId,
          "title": row.title,
          // 通过自定义字段控制禁用状态
          "title_disabled": !isTitleEnabled,
          "body": row.body
        });
      });
      return instance.setValue(gridData);
    })
}
loadData();

之后进入title组件的API标签,将Disabled属性绑定到data.title_disabled,即可通过数据字段直接控制组件的禁用状态。

内容的提问来源于stack exchange,提问作者vijay s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 20:15:20