3

我正在使用剑道 ui 控件。我的功能是根据日期时间过滤网格并下拉选择。这适用于 chrome,但不适用于 FF 和 IE。

                var gridResult = $('#Grid').data("kendoGrid");

                    var condition = {
                        logic: "and",
                        filters: [
                            { field: "Category", operator: "equals", value: $("#nw").val() },
                            { field: "Device", operator: "equals", value: $("#pro").val() },
                            { field: "Orig", operator: "equals", value: $("#work").val() },
                            { field: "Term", operator: "equals", value: $("#network").val() }
                        ]
                    };
                    if (mindate !== null) {
                        condition.filters.push({ field: "Time", operator: "ge", value: new Date(mindate) });
                    }
                    if (maxdate !== null) {
                        maxdate = new Date(maxdate);
                        maxdate.setHours(23, 59, 59, 999);
                        condition.filters.push({ field: "Time", operator: "lt", value: maxdate });
                    }
                    gridResult.dataSource.filter(condition);

                return false;
            });

        $('#fromdatetimepicker').attr('readonly', false);
        $('#todatetimepicker').attr('readonly', false);
      }

当我在 Firefox 中调试时,我没有发现任何错误,任何人都可以查看代码并请告诉我我错在哪里?

4

1 回答 1

0

我一直在测试你的代码,我找不到任何问题,除了你)最后有一个额外的,但这可能是因为该函数是从更大的代码部分中删除的。

然而,有几件事可能会导致这个问题,并且缺少很多代码,所以我不能肯定地说。一些浏览器试图通过忽略您犯的错误来帮助您。这可以使它在 Chrome 中工作,但不能在 FF 和 IE 中工作。处理此问题的最佳方法是检查代码并添加验证,以在每次调用 Filter 方法时确认值。以下是我给你的建议:

  • 在 Internet Explorer 中调试时,使用 IE 11 并使用 F12 调试工具。
  • 您检查它mindate并且maxdate不为空,但如果它们undefined为空值或包含空值,它们将通过该测试并将被添加到过滤器中,即使它们未设置也是如此。
  • 在将其添加到过滤器之前,您没有任何检查mindate并且maxdate是有效日期并且您能够成功创建 JavaScript变量。date这可能是错误的来源,具体取决于脚本中的其他代码。
  • $("#network").val()直接在过滤器中使用 etc 中的值而不验证它们,这可能会在将来导致问题。但这不会导致此错误。

编辑:编码

您需要确保您的网页的编码是正确的。请确保这两行存在于代码head部分中html。如果您使用 ASP.NET MVC,您可以将这两个文件添加到Views\Shared\_Layout.cshtml文件中。如果您使用 ASP.NET 表单,您可以将它们添加到您的主文件中。如果您使用 PHP,您只需将它们放在该head部分中。

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
于 2013-09-06T09:09:07.470 回答