验证knockout.js表单?

时间:2012-06-25 21:18:04

标签: forms validation knockout.js

我在ASP.NET MVC项目中使用knockout.js。我想出了如何显示表单,序列化JSON对象,并在以下链接的帮助下显示数据: How to use knockout.js with ASP.NET MVC ViewModels?

但我无法弄清楚如何验证表格。验证表单的最佳解决方案是什么?

3 个答案:

答案 0 :(得分:36)

我使用了Knockout.Validation插件(https://github.com/Knockout-Contrib/Knockout-Validation),效果很好。它使用Knockout中的扩展器,因此您可以扩展模型属性以包括必需,最小,最大或模式匹配等规则。您还可以创建自定义规则。例如,我为一个网址创建了一个。它也有一些内置的规则,如电子邮件。所有这些都在文档的github页面中。它拥有您开始所需的一切。

另一种选择是使用jquery验证,这也很有效。

答案 1 :(得分:4)

尝试使用Knockout.Validation插件:

https://github.com/Knockout-Contrib/Knockout-Validation

答案 2 :(得分:3)

虽然接受了答案,但我想分享我的方法。我更喜欢将jquery与knockout.js结合使用,并应用非常适合不引人注意的客户端表单验证的jQuery Validation plugin。它在表单提交之前有效,并接受表单作为输入参数。 像这样:

    function ViewModel() {
       var self = this;
       self.firstName = ko.observable();
       self.lastName = ko.observable();
       self.email = ko.observable();
       self.validate = function(form) {
           return $(form).validate();
       };
    };
    var viewModel = new ViewModel();
    ko.applyBindings(viewModel);

调用validate()函数如果验证成功,将提交表单,否则将显示错误。