【发布时间】:2022-01-10 06:06:37
【问题描述】:
我正在尝试通过 javascript 引用由 django 的 django_jsonforms link JSON Schema link 生成的 HTML 标记以动态更新表单。例如,表单中有 2 个下拉列表,如果您在第一个下拉列表中进行选择,则第二个下拉列表应该更新。我已经为手动输入的 HTML 选择标签完成了此操作,但我试图使其适用于 JSON Schemas 生成的 HTML。这是我尝试过的:
- 检查 HTML 页面并尝试按名称调用标签
var project_selection = document.getElementsByName("form[project]")[0];
这不起作用,我有点惊讶,因为当我检查页面时看到select 标签具有name="form[project]"
-
然后我想也许 JSON Schema 会在 javascript 运行后呈现标签,所以我尝试将
defer添加到我的<script defer>中,但没有成功 -
我尝试使用 JSON Schema
$id#anchor和$ref但没有一个可以通过 ID 引用标签
当我尝试使用名称的虚拟标签时,我得到了一个 NodeList,我可以使用 project_section[0] 访问它,但是当我尝试对 django 的 json 模式生成的这个选择标签做同样的事情时,我得到了它的样子一个空列表,但标签在它下面(但是我无法访问它)。见下图。
实际 django 生成的带有名称的选择标签(看起来是空的,但当我展开它时它不是,但是,我无法在其上索引 [0] 项)
我相信以前有人遇到过这个问题,所以我希望这是一个简单的答案。
归根结底,我知道我需要将以下内容与 JSON Schema 一起使用,以执行类似于 onchange 的操作,如 link 所示
var element = document.getElementById('editor_holder');
var editor = new JSONEditor(element, options);
editor.on('change',function() {
// Do something
});
感谢您提前查看!
参考:
【问题讨论】:
标签: javascript html jquery django jsonschema