首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >敲除验证禁用验证

敲除验证禁用验证
EN

Stack Overflow用户
提问于 2012-11-15 22:54:51
回答 1查看 10.5K关注 0票数 10

我有ko.observableArrays与验证的项目。用户可以将项目标记为已删除。当它被标记为已删除时,我需要禁用对该项目的验证。

如何动态禁用验证?

示例:http://jsfiddle.net/3RZjT/2/

代码语言:javascript
复制
<div data-bind="foreach: names">
    <input data-bind="value: name, valueUpdate: 'afterkeydown'" /> <a data-bind="click: deleteMe, text:deleted()?'undelete':'delete'" href="#">delete</a><br/>
</div>

function Person(name){
    var self = this;
    self.name = ko.observable(name).extend({ required: true});
    self.deleted = ko.observable(false);
    self.deleteMe = function(){ 
        self.deleted(!self.deleted());
        self.deleted.extend({ validatable: !self.deleted()});
    };
}

var viewModel = {
    names: ko.observableArray([new Person("Ken"), new Person("")])
};

ko.applyBindings(viewModel);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-15 23:29:16

更新旧答案对Knockout-Contrib版本的验证无效(这是积极开发的分支)

https://github.com/Knockout-Contrib/Knockout-Validation

使用onlyIf选项,如

代码语言:javascript
复制
this.enable = ko.observable(true);
this.required = ko.observable().extend({ required: { onlyIf: this.enable } });

旧答案

试一试

代码语言:javascript
复制
this.property.extend({ validatable: false }); // disables all validation for property

代码语言:javascript
复制
this.property.extend({ required: false }); // disables required validation for property
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13400063

复制
相关文章

相似问题

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