剣道グリッドを操作するには、グリッド上の特定のセルのデータをチェックするメソッドが必要です。セルが配置されている列名を返したい列には静的フィールド名がありますが、動的タイトルです。フィールド名に基づいてタイトルを取得する必要があります。.find()Jquery関数IE11ではサポートされていませんか?
コード:
function checkAllTemperatures(data) {
var columns = ['Temp1','Temp2','Temp3','Temp4','Temp5'];
var comment = '';
for (var i = 0; i < columns.length; i++) {
comment += checkTemperature(data, columns[i]) + ', ';
}
//removes trailing comma and whitespace from comment
comment = comment.replace(/,\s*$/, "");
setComment(data, comment);
}
function checkTemperature(data, columnName) {
var comment = '';
var matlSpec = GetMaterialSpecs(data.ProductId);
var changedData = data[columnName];
if(changedData > matlSpec.TemperatureUpperLimit || changedData < matlSpec.TemperatureLowerLimit)
{
var columnTitle = grid.columns.find(function(v, i) { return grid.columns[i].field == columnName; }).title;
comment = columnTitle + ' = ' + changeData;
CommonFunctions.OpenErrorWindow({message: 'Temp is out of specification!', Errors:'', errors:''});
}
return comment;
}
コンソールで次のコマンドを実行し、Google Chromeでのデバッグ:正しいタイトルを返しますが、IE11で動作しているとき、私はこのエラーを取得grid.columns.find(function(v, i) { return grid.columns[i].field == "Temp1"; }).title
:
0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'find'
Dispiteを実際にプログラムのChromeを実行しているときにChrome Consoleで動作するコマンドでは、このエラーが発生します。
Uncaught ReferenceError: changeData is not defined
このコードが破損する理由:
1)剣道グリッドのためにJqueryが2回初期化されています。
2).find()が任意のアイデア
IE11
によってサポートされていない修正するには?
2番目のエラーは、タイプミスのためです(changedDataを初期化した後、changeDataを使用しています)。 – Rienk
最初のエラーは、 'grid.columns'がjQueryオブジェクトではなく通常の配列 – adeneo
'find()'の代わりに 'filter()。pop()'を使うことができます。これはIE11(現代のすべてのブラウザ)でサポートされています。 – Werner