Knockout.js Knockoutjs仅验证chind类
我使用knockoutjs3.0.0和knockoutjsvalidate,大多数时候它们工作得很好。现在我在尝试验证局部视图模型时遇到了问题。 像这样:Knockout.js Knockoutjs仅验证chind类,knockout.js,knockout-validation,Knockout.js,Knockout Validation,我使用knockoutjs3.0.0和knockoutjsvalidate,大多数时候它们工作得很好。现在我在尝试验证局部视图模型时遇到了问题。 像这样: function DataViewModel() { var self = this; self.username = ko.observable("").extend({ required: {message:"User name is required!" }}); self.password =
function DataViewModel() {
var self = this;
self.username = ko.observable("").extend({ required: {message:"User name is required!" }});
self.password = ko.observable().extend({ required: {message:"Password is required!" }});
self.login = function () {
if (self.isValid()) {
self.errors.showAllMessages();
return false;
}
$("#loginform").submit();
};
}
我还有控制页面属性的页面视图模型
function PageViewModel(){
var self=this;
self.contentheader=ko.observable("Login");
self.usernamelabel = ko.observable("User Name");
self.passwordlabel = ko.observable("Password");
}
我创建的ViewModel如下所示:
function ViewModel()
{
var self=this;
self.data= ko.validatedObservable(new DataViewModel());
self.page= new PageViewModel();
}
最后,我绑定到KO
var vm=new ViewModel();
ko.应用绑定(vm)
我为什么这样做是因为:
在DataViewModel中,我存储将从服务器传递或加载的数据,页面视图模型我控制该页面的行为,当用户向服务器提交数据时,我应该对DataViewModel进行验证。但它不起作用,我看到KO模型产生了这样的错误
TypeError: obsv is undefined
任何人都可以提供帮助?在您的情况下,您可以在该模型中处理您的
数据视图模型的验证。在模型中添加一个可观察项来跟踪验证,如下所示
self.errors=ko.validation.group(self)代码>
并将主视图模型中的DataViewModel
实例更改为正常的ko.observable
,而不是经过验证的observable。我有 这很有效。但我还有一个麻烦。当从浏览器还原用户名和密码时,knockoutjs validate不起作用。@Ericyu67您能详细说明一下(可能会在编辑原始问题时发布一些还原这些字段值的代码)?我测试了您的示例代码,只有输入一些值,它才起作用。但当我尝试将值复制/粘贴到textbox时,它无法触发validate。也许这里不是问这个问题的好地方。