我正在为我的表单实现淘汰验证,并且我希望仅在显示时才需要字段。根据表单中其他字段的选择,可见性隐藏某些控件:hidden或display:none。如何才能显示这些字段?我试过这个
src/scss
但它似乎不起作用,而且我不确定它是否应该(你可以在敲门声中编写自定义逻辑,如果只是params?)。
感谢您的帮助。
答案 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());