对隐藏字段进行Knockout.js验证

时间:2015-10-21 15:19:32

标签: javascript jquery knockout.js

我正在为我的表单实现淘汰验证,并且我希望仅在显示时才需要字段。根据表单中其他字段的选择,可见性隐藏某些控件:hidden或display:none。如何才能显示这些字段?我试过这个

src/scss

但它似乎不起作用,而且我不确定它是否应该(你可以在敲门声中编写自定义逻辑,如果只是params?)。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

如评论中所述,您需要做的只是

在ViewModel中声明一个observable,说self.nameVisible=ko.observbale()从任何地方(从DB或基于其他控件选择)设置值True/False。稍后您应该在验证中使用self.nameVisible(),即使用.extend& onlyIf组合使事物(隐藏/显示元素+动态条件验证)起作用。

<强> HTML

<input type="text" data-bind="value:name,visible:nameVisible"/>

<强>视图模型:

var ViewModel = function () {
    var self = this;
    self.nameVisible = ko.observable(true); //Set it dynamically 
    self.name = ko.observable().extend({
        required: {
            message: '*** Required',
            onlyIf: self.nameVisible
        }
    });
};
ko.applyBindings(new viewModel());