【发布时间】:2015-10-22 11:47:06
【问题描述】:
我正在为我的表单实施剔除验证,并且我希望仅在显示时才设置一个必填字段。根据表单中其他字段的选择,某些控件可能会被可见性隐藏:隐藏或显示:无。我怎样才能使这些字段仅在显示时才需要?这个我试过了
var name = ko.observable().extend({
required: {
onlyIf: function () {
return ($('#name').is(':visible'));
},
message: '*** Required'
}
});
但它似乎不起作用,我不确定它是否应该(你能在 knout onlyIf 参数中编写这样的自定义逻辑吗?)。
感谢您的帮助。
【问题讨论】:
-
一种方法是你应该基于 viewModel 中的 observable 设置可见性
self.nameVisible=ko.observbale() to true/false稍后你可以在.extend和onlyIf中使用相同的 observable。保持动态性 -
我想我没有提供足够的信息。我的字段实际上是根据在页面加载时从数据库中提取的信息以及其他控件的选择来显示/隐藏的。尽管如此,您的评论向我展示了如何处理它并且我能够解决。如果您想将此作为答案,我很乐意选择它。
-
想添加一个小提琴,但你得到了一个工作的。添加为答案,帮助自己。欢呼
标签: javascript jquery knockout.js