我有一个使用KOJ进行计算的表单,我需要在那里实现kojs验证,以便用户不应该在表单中提交空白字段..
我已经尝试了各种资源,但它们并没有太大帮助。
请你们解决这个问题。 任何帮助将不胜感激。
以下是我的代码
cond() && false || true
答案 0 :(得分:1)
首先,您不需要生成数据对象。 Knockout具有以下优秀功能:ko.toJSON()。在ViewModel的第一行添加如下变量:
var self = this;
这样您就可以从任何函数访问viewModel对象。然后,在 submitForm 上设置
var data = ko.toJS(self);
关于验证,一个简单但不太优雅的解决方案是创建一个验证数据的函数,如:
this.isValid = function() {
return self.fullname().length > 0 &&
self.email().length > 0 &&
... && the validations you want.
}
此函数可用于验证submitForm上的对象。另一种方法是使用验证每个可观察对象的customHandler,例如
this.email = ko.observable();
this.email.valid = ko.computed() {
if (self.email())
return self.email().length > 0;
return false;
}
与其他人一样。然后,您只需要在submitForm函数上验证self.email.valid()。此外,这允许您在用户界面上显示元素是否有效。最后,您可以使用knockout validation插件。如你所见,有很多可能性!!!