【发布时间】:2014-02-11 11:31:55
【问题描述】:
我在提交时检查我的视图模型以进行验证as described here on SO, actually。
除了“提交”操作之外,我的表单还有一个“保存进度”操作。它以几乎相同的方式提交到服务器,但必填字段更少。
我想将四个绝对必填字段保留在它们当前在视图模型中的位置......即将它们保留在更大的验证组中以供提交。
在淘汰验证中是否有一种方法可以像showAllMessages() 那样简单地显示特定消息?我查看了源代码,但找不到像 showMessage() 这样附加到单个错误的内容。
或者,有没有办法从我的视图模型中挑选字段并将它们放在自己的验证组中(但也将它们放在更大的组中)?
所以,举个例子:
var ViewModel = ko.validatedObservable({
requiredForSave1: ko.observable().extend({ required: true }),
requiredForSave2: ko.observable().extend({ required: true }),
requiredForSubmit: ko.observable().extend({ required: true })
// ... and many more.
});
$('#sumbit').on('click', function(){
//check the entire validation group
if ( ViewModel.errors().length === 0 ){
doSubmit();
}
else{
ViewModel.errors.showAllMessages();
}
});
$('#save').on('click', function(){
//check only part of the validation group
if ( ViewModel.requiredForSave1.isValid() &&
ViewModel.requiredForSave2.isValid() ){
doSubmit();
}
else{
//show only one or two specific validation messages.
//???
}
});
有没有办法填写最后一个 else 块,还是我应该采取不同的方法?
谢谢
【问题讨论】:
标签: javascript validation knockout.js knockout-validation