淘汰异步验证IE9

时间:2015-01-16 06:23:25

标签: javascript validation knockout.js

一切都完美适用于Chrome,但在IE中不起作用。发生此异步调用并触发回调(false),但constCentreNumber仍然有效且未显示错误。

 self.costCentreNumber = ko.observable().extend({
            required: { params: true, message: utils.message.required("Cost Centre number") },
            pattern: {
                message: utils.message.format("Cost Centre number"),
                params: '^[0-9a-zA-Z]{1,10}$'
            },
            validation: {
                async: true,
                message: utils.message.invalid("Cost Centre number"),
                validator: function (val, otherval, callback) {
                    dataSource.validate.costCode(val, self.shiftStart())
                        .always(function(result) {
                            callback(result);
                        });
                }
            }
        });

1 个答案:

答案 0 :(得分:0)

非常愚蠢,chrome读取结果为布尔值,但IE - 作为字符串,为什么它仍然有效,为“假”

解决方案是:

callback(result == "true" || result === true);