首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Knockout-验证已更正的错误

Knockout-验证已更正的错误
EN

Stack Overflow用户
提问于 2012-12-07 20:48:11
回答 1查看 624关注 0票数 3

我使用的是KnockoutJS和Knockout-Validation。我使用的是属性errorElementClass,但是,我希望在纠正验证错误时能够将另一个类分配给元素。只有在元素遇到错误并得到纠正后,才会将这个类分配给元素。

有没有人尝试过这种事情?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-07 21:58:58

您可以向可观察对象添加扩展程序,并订阅对isValid属性的更改

像这样

代码语言:javascript
复制
ko.extenders.corrected = function(observable) {
    observable.isCorrected = ko.observable();
    observable.isValid.subscribe(function(value) {
        observable.isCorrected(value == true);
    });

    return observable;
};

http://jsfiddle.net/fkkJz/

您需要手动绑定css

代码语言:javascript
复制
<input data-bind="value: field, css: { corrected: field.isCorrected }"  />

你也可以做一点修改,这样你就不需要手动绑定css了。这将覆盖值绑定,并检查它是否应该注入css绑定http://jsfiddle.net/HuLWD/

更新:由于一个需求,我自己在功能上需要这个,并记住了这个答案,但如果提交了第二个正确的值,我也需要它来清除更正的状态,它可以实现如下所示

代码语言:javascript
复制
ko.extenders.corrected = function(observable) { 
    var state = observable();
    observable.isCorrected = ko.observable();
    observable.isValid.subscribe(function(value) {
        observable.isCorrected(value == true);
        state = observable();
    });

    observable.subscribe(function(value) {
        if(state !== value) {
            observable.isCorrected(false);
        }
    });

    return observable;
};

http://jsfiddle.net/HuLWD/1/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13763418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档