javascript - 使用从 django json 模式生成的 javascript 引用 HTML 标记

标签 javascript html jquery django jsonschema

我正在尝试引用由 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 模式生成的这个选择标签做同样的事情时,我得到了它的样子一个空列表,但标签在它下面(但我无法访问它)。请参见下图。

带有名称的 h1 标签的虚拟测试 enter image description here

实际的 django 生成了带有名称的选择标签(看起来是空的,但当我展开它时它不是,但是,我无法在其上索引 [0] 项) enter image description here

我相信有人以前遇到过这个问题,所以我希望这是一个简单的答案。

归根结底,我知道我需要将以下内容与 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/

相关文章:

javascript - 如何连接input和two.js Canvas ?

javascript - javascript 中的地址字符串拆分

javascript - 访问 JSON-LD 对象产生错误是谷歌结构化数据测试工具

javascript - 无需在脚本中指定 ID 的简单(动态)覆盖

ajax - 如何在 Ajax 调用/HTML 阻塞期间在旋转 gif 上方添加文本

c# - 如何从具有复杂键的 FormCollection 构建 C# 对象

javascript - 带有javascript滚动条的Adobe AIR HTML/JS应用程序

javascript - Jquery Masked Input 插件允许点

javascript - 使 polymer 纸标签居中

javascript - Javascript 数组中的循环