【发布时间】:2013-10-24 00:08:33
【问题描述】:
我有一个由两部分组成的淘汰赛表格。当第一部分被填写时,第二部分被隐藏。完成第一部分并单击“继续”后,第一部分被隐藏,第二部分显示。我希望能够验证第一组输入,如果没有错误则继续下一部分。
我在官方 github 页面上找到了this,我正在尝试这样做。
当我这样做时,没有检测到错误。继续第二部
function ReserveViewModel(){
self.firstName = ko.observable("").extend({ required: true });
self.continue = function(){
var errors = ko.validation.group([ReserveViewModel.firstName]);
if (errors.length == 0) {
//display second div
}
else{
self.errors.showAllMessages();
}
}
}
但是,如果我这样做,它会起作用,但会尝试验证所有内容。由于第二组输入是空的,它就挂在那里。
self.continue = function(){
self.errors = ko.validation.group(self);
if (self.errors().length == 0) {
}
else{
self.errors.showAllMessages();
}
}
【问题讨论】:
-
因此,如果您按照第一种方式进行操作,它会按照您的预期工作 - 为什么要使用第二种方式?为什么不只使用两个独立的视图模型并拥有两组验证规则?
-
我不确定我理解你的意思。我要么没有得到验证,要么完全验证了我所展示的内容。我想我可以创建两个单独的视图模型,我从来没有这样想过。无论如何,我仍然对为什么我的示例在文档中以这种方式显示时无法正常工作感到困惑。
-
当我读到你的问题时,我还不清楚为什么第一种方法不起作用。
标签: javascript jquery knockout.js knockout-validation