gpt4 book ai didi

asp.net-mvc - Internet Explorer 中的 knockout validation 错误?

转载 作者:行者123 更新时间:2023-12-04 05:07:24 27 4
gpt4 key购买 nike

在我的 Razor 看来,使用 knockout据说 knockout validation我添加以下行(实际开始使用 ko 验证):

<script src="@Url.Content("~/Scripts/knockout.validation.debug.js")" type="text/javascript"></script>
  • 当我在 Chrome 中运行此 View 时,验证工作正常。
  • 当我在 IE (9.0) 中运行这个 View 时,我收到一条非常难看的消息:

  • Error Message

    0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'rules': object is null or undefined.



    (在文本中用于 future 对 SO 的搜索)点击“继续”后,它运行良好,验证似乎运行良好。它只是这个消息。

    值得一提的是,我搜索了解决方案 - 我没有在任何地方使用“规则”。
    不知道 IE 发生了什么。

    有没有人知道为什么会发生这种情况以及如何消除错误?

    最佳答案

    简短回答:它看起来像 the new version of Knockout Validation解决了这个问题。更新您的 knockout 验证以解决此问题并忘记这曾经发生过。

    更长的答案:错误来自一个名为 isValidatable 的内部实用程序方法中的错误。 .这是从源代码复制粘贴的:

    isValidatable: function (o) {
    return o.rules && o.isValid && o.isModified;
    }

    有人打电话 isValidatable哪里 o正如错误所说,是“空或未定义”。如果一个对象甚至不是一个对象,它就是不可验证的!在这种情况下,我们遇到了错误,因为我们正在寻找 o.rules ,这将引发错误,因为 o未定义或为空。

    The new version of Knockout Validation这样做:
    isValidatable: function (o) {
    return o && o.rules && o.isValid && o.isModified;
    },

    如果对象存在,则第一个子句返回 true(从技术上讲,它返回 o,其计算结果为 true)。如果对象不存在,如果 o 返回且没有错误未定义。

    如果你好奇, here's the commit that fixed the bug you're experiencing .

    关于asp.net-mvc - Internet Explorer 中的 knockout validation 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15351041/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com