3

私は kendo ui コントロールを使用しています。私の機能は、日時に基づいてグリッドをフィルタリングし、選択をドロップすることです。これはクロムでは機能しますが、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 デバッグ ツールを使用します。
  • mindatemaxdateが null でないことを確認しますundefinedが、空の値であるか、空の値が含まれている場合は、そのテストに合格し、設定されていなくてもフィルターに追加されます。
  • mindateおよびが有効な日付であること、および JavaScript変数をフィルターに追加する前にmaxdate正常に作成できることを確認していません。dateスクリプト内の他のコードによっては、これがエラーの原因になる可能性があります。
  • etcの値$("#network").val()を検証せずにフィルターで直接使用すると、将来問題が発生する可能性があります。しかし、これはこのエラーの原因ではありません。

編集:エンコーディング

ウェブページのエンコーディングが正しいことを確認する必要があります。これらの 2 行がコードのheadセクションに存在することを確認してください。htmlASP.NET MVC を使用する場合は、これら 2 つのファイルをファイルに追加できViews\Shared\_Layout.cshtmlます。ASP.NET フォームを使用する場合は、それらをマスターファイルに追加できます。headPHP を使用する場合は、それらをセクションに入れるだけです。

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