Knockout 异步验证 IE9
Knockout async validation IE9
一切都在 chrome 中完美运行,但在 IE 中不起作用。发生此异步调用并触发 callback(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);
});
}
}
});
非常愚蠢,chrome 将结果读取为布尔值,但 IE - 作为字符串,这就是为什么它仍然有效,"false"
解决方案是:
callback(result == "true" || result === true);
一切都在 chrome 中完美运行,但在 IE 中不起作用。发生此异步调用并触发 callback(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);
});
}
}
});
非常愚蠢,chrome 将结果读取为布尔值,但 IE - 作为字符串,这就是为什么它仍然有效,"false"
解决方案是:
callback(result == "true" || result === true);