我该如何处理这样的物体

2023-12-03

我需要以表格形式显示错误。

如果子级中定义了错误,则可以将错误附加到输入名称表单中,这是常见情况 (1)。

但可能会发生错误是在 json 对象的根节点中定义的 (2)。
在这种情况下,应将其附加到 formElement。

以下代码 (3) 适用于情况 (1),但不适用于情况 (2)。

我应该如何修改它才能使其在这两种情况下都有效?
P.S.:我正在使用下划线和jquery。


(1)

var xhrObj_1 = JSON.parse('{ "children":{"points":{"errors":["This value should not be blank."]},"message":[],"recipient_id":{"errors":["This value should not be blank."]}}}');

(2)

var xhrObj_2 = JSON.parse('{ "errors":["This form should not be …."], "children":{"points":{"errors":["This value should not be blank."]},"message":[],"recipient_id":{"errors":["This value should not be blank."]}}}');

(3)

var parser = function (object) {
    _.each(object, function (xhrObject, name) {
        console.log(xhrObject)

        if (xhrObject.errors) {
            var inputElement = element.find('[name="' + name + '"]');

            inputElement.closest('.control-group')
                .addClass('error');

            parserError(xhrObject.errors, inputElement);

        } else {
            parser(xhrObject); // it is ok for xhrObj_1
                               // it fails for xhrObj_2
        }
    });
};

// example with xhrObj_2 which does not work
parser({
    "errors": ["errro1"],
    "children": {
        "points": {
            "errors": ["This value should not be blank."]
        },
        "message": [],
        "recipient_id": {
            "errors": ["This value should not be blank."]
        }
    }
});

您应该从顶层开始递归:

var xhr = JSON.parse("…");

(function recurse(obj, name) {
    if (obj.errors) {
        var inputElement = element.find('[name="' + name + '"]');
        inputElement.closest('.control-group').addClass('error');
        parserError(obj.errors, inputElement);
    }
    if ("children" in obj)
        for (var prop in obj.children)
            recurse(obj.children[prop], prop);
})(xhr, "top");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我该如何处理这样的物体 的相关文章

随机推荐

  • 如何向后视觉选择计算?

    我想直观地向后选择计算 p e 200 3 This is my text 300 2 9 3 This is text 0 25 2 000 sqrt 15 1 5 原因是我会在插入模式下使用它 编写计算后 我想选择计算 使用地图 并将计
  • getScript 或 eval 在特定位置?

    我想知道 eval 或 jQuery 的 getScript 的某些变体 是否可以用于将外部 javascript 定位在 DOM 末尾或头部以外的位置 我试过了 var head document getElementById fig 代
  • 如何将 Microsoft 用户从 Azure 同步到 Keycloak

    我们正在尝试找出一种将用户从 Azure 帐户同步到 Keycloak 的方法 不幸的是 我们找不到它的文档 你知道正确的方法吗 我想使用 Azure 作为外部数据库 可用于对用户进行身份验证 谢谢 我想使用 Azure 作为可用于进行身份
  • 使用 gcc、g++ 和 gdb 在 Window 7 上设置 VSCode 进行 C/C++ 调试

    我正在遵循以下指示here 安装了cpptools 已创建tasks json包含以下内容 version 0 1 0 command g isShellCommand true showOutput always args g hello
  • 如何将“setcdr”与缓冲区局部变量一起使用

    我正在使用的行为setcdr这似乎表明它不限于在不同缓冲区中包含相同名称的缓冲区局部变量 我尝试过使用with current buffer 但这并不能解决问题 例如 buffer A and buffer B两者都包含一个名为的局部变量v
  • 如何反转 Firebase 中的项目顺序

    如何在 Firebase 中反转此列表的顺序 我希望最后一项成为第一项 我尝试使用queryOrdered 但这并没有什么区别 我列出了从 Firebase 检索的数据结构的一个示例 KhPRPQEOiVzPW7G2iQI amount 2
  • JMeter:如何在多个线程组循环中重用/重新打开 CSV?

    在 JMeter 中 我有一个 CSV 用户列表 每个用户都应该上传一定数量的文件 这些文件列在第二个 CSV 中 每个用户必须上传所有文件 由于服务器无法一次处理所有线程 因此我将线程组设置为使用 X 个用户并循环 Y 次 以便最终所有用
  • dataWithContentsOfURL 通过蜂窝网络返回 NSCocoaErrorDomain Code=256,但不通过 wifi 返回

    我遇到了一个非常奇怪的问题 dataWithContentsOfURL 已开始通过蜂窝网络返回错误代码 256 但不通过 wifi 返回错误代码 操作无法完成 可可错误 256 我确实有蜂窝数据连接 并且它正在运行 所以我的蜂窝连接不是问题
  • 在 WooCommerce 中添加到购物车之前尽早设置运输邮政编码

    我希望客户能够在将产品添加到购物车之前设置他们的邮政编码 然后保存该邮政编码并用于定义可用的交付方式 我已经制作了以下功能 但它并不总是有效 而且我不确定应该使用哪些 Woocommerce 方法以及它们之间有什么区别 WC gt cust
  • 空数组自动初始化内容?

    How come int alone System out println alone 给出错误但是 int arr new int 1 System out println arr 0 等于0 当你初始化一个空数组时 它是否会自动将其内容
  • JSF 托管 bean 修改后重新部署应用程序

    为什么 JSF 托管 Bean 修改需要重新部署应用程序才能生效 开发环境 日食靛蓝 JBoss为7 JBossAS 工具 进一步解释 如果我修改 JSF 页面 只需刷新页面即可可视化修改 但 JSF 托管 bean 修改的情况并非如此 我
  • 在 SSE/AVX 中高效计算 X 的幂

    我正在寻找最有效的方法来计算浮点数的所有第一个整数幂XSSE 128 AVX 256 AVX 512 寄存器内部 128 256 和 512 位 例如对于 float AVX1 256 我想进入寄存器X 1 X 2 X 3 X 4 X 5
  • 屏幕键盘 gui 无法正常工作

    我正在尝试在顶部显示文本区域并在其下方显示键盘键 但是当我运行此代码时 整个事情是混合的 我做错了什么以及如何解决它 这是代码 public Keyboard super Typing Tutor pane1 new JPanel pane
  • 将 Microsoft Ajax Minifier 与 Web 安装项目和源代码管理结合使用

    我刚刚开始调查微软 Ajax 缩小器 4 0与我正在开发的 Visual Studio 2008 Web 应用程序一起使用 事实证明 将其挂接到 csproj 文件中非常容易 因此它为所有脚本生成 min js 文件 但是我对如何将其与 W
  • A 类声明多个 JSON 字段

    我有一个类 A 它有一些私有字段 同一个类扩展了另一个类 B 它也有一些类 A 中的私有字段 public class A extends B private BigDecimal netAmountTcy private BigDecim
  • R - 传单 - highcharter 工具提示

    我想包括一个highcharter情节在我的leaflet弹出窗口 在来自的帮助下this帖子我能够包括sparkline阴谋 但是 由于我缺乏 html 技能 我不知道如何修改代码来使用highcharter 这个答案关于SO 答案中的示
  • Logstash 5.1.1“错误的 URI(不是 URI?)”

    Error c Program Files Logstash bin gt logstash bat e 输入 stdin 输出 stdout 发生意外错误 错误 gt 错误的 URI 不是URI File c Program Files
  • MongoDB 全文搜索,两个字段自动完成

    我正在尝试实施MongoDB 图集搜索 目标是在 2 个字段上自动完成 我目前有这个实现 const searchStep search Read more about compound here https docs atlas mong
  • PDFbox 找不到字体:/Helv

    我尝试将表单字段添加到现有 PDF 文件 但出现以下错误PDFbox Could not find font Helv 我的 Java 代码具有以下视图 PDDocument pdf PDDocument load inputStream
  • 我该如何处理这样的物体

    我需要以表格形式显示错误 如果子级中定义了错误 则可以将错误附加到输入名称表单中 这是常见情况 1 但可能会发生错误是在 json 对象的根节点中定义的 2 在这种情况下 应将其附加到 formElement 以下代码 3 适用于情况 1