网格无法在firefox中呈现



我正在使用EditableGrid动态生成和操作列模型。一切都按照计划进行,除了Firefox的一个兼容性问题(…是的,不是IE -_-)。我理解这可能是某种结案的问题?我似乎无法解决这个问题。这就是出错的地方:

EditableGrid.prototype.initializeGrid = function () {
    with (this) {
        //apply cell validators and inforenderers in headers
        var regex = [];
        for (var count = 0; count < selectedColumnNames.length; ++count) {
            var columnObj = findSelectedColumnObject(selectedColumnNames[count]);
            //check if regex is provided
            if (!(columnObj[0].validationRegex == "")) {
                // add a cell validator
                var expression = new RegExp(columnObj[0].validationRegex);
                regex[columnObj[0].name] = new RegExp(columnObj[0].validationRegex);
                var valObj = GetValidatorObject(expression);
                addCellValidator(columnObj[0].name, valObj);
            }
        }
        function GetValidatorObject(regObj){
            var obj = {
                isValid: function (value) {
                    return value == "" || (regObj.test(value));
                }
            };
            return new CellValidator(obj);
        }
}

抛出的异常是:

ReferenceError: GetValidatorObject未定义[var valObj =。GetValidatorObject(表达式);]

任何想法?

由于epascarello,工作很简单,我将GetValidatorObject的方法移出了with (this)的范围。现在它与FF一起工作。当我进一步深入研究这个问题时,我发现在JS中避免使用"with"关键字真的很有趣。这可能会清除灰色区域。

最新更新