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

Form.io从变量渲染/重建表单时报Uncaught TypeError问题咨询

Formio builder 传入JSON报错问题解决方案

核心错误原因

你从textarea中取出的jsonForm1是JSON字符串类型,而Formio.builder的第二个入参要求传入JavaScript对象类型,直接传入字符串会触发类型不匹配报错。同时原有代码中存在一个选择器语法错误。

具体问题点

  • 未做JSON字符串转对象处理:textarea的value属性返回值始终为字符串格式,不符合Formio的入参要求
  • jQuery选择器多了冗余空格:$("# value_forn_1")中id值前的空格会导致无法匹配到对应textarea元素

修正后代码

window.onload = function () {
  var formJsonStr = document.getElementById("value_forn_1").value;
  var jsonForm1 = {};
  // 增加异常捕获,避免JSON格式异常导致页面崩溃
  try {
    jsonForm1 = JSON.parse(formJsonStr);
  } catch (err) {
    console.error("表单JSON解析失败:", err);
    return;
  }

  console.log(jsonForm1);

  var builder = new Formio.builder(document.getElementById("edit"), jsonForm1, {});
  builder.then(function (form) {
    form.on("change", function (e) {
      console.log("builder");
      var jsonSchema = JSON.stringify(form.schema, null, 4);
      console.log(jsonSchema);
      // 移除id选择器中多余的空格
      $("#value_forn_1").val(jsonSchema);
    });
  });
};

验证说明

修改后重新运行,即可将存储的JSON内容正确加载到Formio构造器中进行编辑,编辑后的内容也可以正常回写到textarea中。

内容的提问来源于stack exchange,提问作者Matias Alarcón

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:45:01