我正在尝试引用由 django 的 django_jsonforms
生成的 HTML 标记link JSON 模式 link通过 javascript 动态更新表单。例如,表单中有 2 个下拉菜单,如果您在第一个下拉菜单中进行选择,则第二个下拉菜单应该更新。我已经为手动输入的 HTML 选择标签完成了此操作,但我正在尝试使其适用于 JSON 模式生成的 HTML。这是我尝试过的:
- 检查 HTML 页面并尝试按名称调用标签
var project_selection = document.getElementsByName("form[project]")[0];
这没有用,我有点惊讶,因为我在检查页面时看到 select
标签有 name="form[project]"
然后我认为 JSON 架构可能会在 javascript 运行后呈现标签,所以我尝试添加
defer
进入我的<script defer>
那没有用我尝试使用 JSON 架构
$id
#anchor
和$ref
但这些都无法通过 ID 引用标签
当我尝试使用 name 的虚拟标签时,我得到了一个 NodeList,我可以使用 project_section[0] 访问它,但是当我尝试对 django 的 json 模式生成的这个选择标签做同样的事情时,我得到了它的样子一个空列表,但标签在它下面(但我无法访问它)。请参见下图。
实际的 django 生成了带有名称的选择标签(看起来是空的,但当我展开它时它不是,但是,我无法在其上索引 [0] 项)
我相信有人以前遇到过这个问题,所以我希望这是一个简单的答案。
归根结底,我知道我需要将以下内容与 JSON 模式结合使用来执行类似于 onchange
的操作如图link
var element = document.getElementById('editor_holder');
var editor = new JSONEditor(element, options);
editor.on('change',function() {
// Do something
});
感谢您提前查看!
引用资料:
最佳答案
不完全确定这个,但你正在使用
getElementsByClassName
,与元素的类名相关。不是名字。例如:
<div class="cname"></div>
这是一个类名,表单元素有一个name
属性,你可以通过
var project_selection = document.getElementsByName("form[project]");
关于javascript - 使用从 django json 模式生成的 javascript 引用 HTML 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70221645/