[英]Knockout.js validation on hidden fields
我正在为我的表单实施敲除验证,并且仅在显示该字段时,我才希望将其设为必填字段。 根据表单中其他字段的选择,某些控件可能会被visible:hidden或display:none隐藏。 仅在显示时如何才能使这些字段为必填字段? 我已经试过了
var name = ko.observable().extend({
required: {
onlyIf: function () {
return ($('#name').is(':visible'));
},
message: '*** Required'
}
});
但这似乎不起作用,而且我不确定是否应该这样做(如果参数,您是否可以在剔除中编写类似的自定义逻辑?)。
谢谢你的帮助。
如评论中所述,您需要做的是
在ViewModel中声明一个可观察到的对象,例如说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());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.