gpt4 book ai didi

javascript - 隐藏字段的 Knockout.js 验证

转载 作者:行者123 更新时间:2023-11-30 16:31:28 24 4
gpt4 key购买 nike

我正在为我的表单实现 knockout validation ,并且我想让一个字段只有在显示时才需要。根据表单中其他字段的选择,某些控件可能会被 visibility:hidden 或 display:none 隐藏。我怎样才能使这些字段仅在显示时才需要?这个我试过了

var name = ko.observable().extend({
required: {
onlyIf: function () {
return ($('#name').is(':visible'));
},
message: '*** Required'
}
});

但它似乎不起作用,我不确定它是否应该(你能在 knockout onlyIf params 中编写像那样的自定义逻辑吗?)。

感谢您的帮助。

最佳答案

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

在 ViewModel 中声明一个 observable per say self.nameVisible=ko.observbale() 从任何地方设置它的值 True/False(来自 DB 或基于其他控制选择)。稍后您应该在验证中使用 self.nameVisible().extendonlyIf 组合来制作东西(隐藏/显示元素+动态条件验证)工作。

HTML:

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

View 模型:

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());

关于javascript - 隐藏字段的 Knockout.js 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33263139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com