`
Nami_Sup
  • 浏览: 5245 次
文章分类
社区版块
存档分类
最新评论

Knockout.Validation

阅读更多

这个框架比较冷门,百度上相关的API比较少,找了好多天,写了一个简单的Demo,首先列出验证常用的方法:

以下方法来源:http://www.cnblogs.com/lori/p/3593807.html?utm_source=tuicool&utm_medium=referral

为空验证:

self.CategoryId = ko.observable().extend({
            required: true
});

 最大最小值验证:

self.price = ko.observable().extend({
            required: { params: true, message: "请输入价格" },
            min: { params: 1, message: "请输入大于1的整数" },
            max: 100
});

 长度验证:

self.name = ko.observable().extend({
            minLength: 2,
            maxLength: { params: 30, message: "名称最大长度为30个字符" },
            required: {
                params: true,
                message: "请输入名称",
            }
});

 电话验证:

self.phone = ko.observable().extend({
            phoneUS: {
                params: true,
                message: "电话不合法",
            }
});

 邮箱验证:

self.Email = ko.observable().extend({
            required: {
                params: true,
                message: "请填写Email"
            },
            email: {
                params: true,
                message: "Email格式不正确"
            }
});

 数字验证:

self.age = ko.observable().extend({
            number: {
                params: true,
                message: "必须是数字",
            }
});

 相等验证:

 self.PayPassword = ko.observable().extend({
            required: {
                params: true,
                message: "请填写支付密码"
            },
            equal:{
                params:"zzl",
                message:"支付密码错误"
            }
});

 然后是我自己写的一个简易Demo:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>吃兔纸不吐毛</title>
<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="knockout-3.3.0.js"></script>
<script type="text/javascript" src="knockout.validation.min.js" ></script>
<style type="text/css">
b {color: red;}
</style>
</head>

<body>
<table>
	<tr>
		<td>账号:</td>
		<td><input type="text" data-bind="value:username, validationElement: username" /></td>
		<td><b data-bind="validationMessage: username"></b></td>
	</tr>
	<tr>
		<td>密码:</td>
		<td><input type="text" data-bind="value:password, validationElement: password" /></td>
		<td><b data-bind="validationMessage: password"></b></td>
	</tr>
	<tr>
		<td><button data-bind="click:submitClick" >提交</button></td>
		<td><b id="result" style="display:none">提交成功</b></td>
		<td></td>
	</tr>
</table>

<script type="text/javascript">
    ko.validation.init({
        decorateElement: false,
        registerExtenders: true,
        messagesOnModified: true,
        insertMessages: false,
        parseInputAttributes: true,
        messageTemplate: null,
        errorClass : 'error'
    });
 
    var viewModel = {
        username: ko.observable().extend({ 
			//required为空验证
			required: { params: true, message: '请输入账号' }, 
			minLength: { params: 6, message: "账号名称太短" }
		}),
		//这里贴了两种写法,这里的验证不定义message都会显示默认信息
        password: ko.observable().extend({ required: { message: '请输入密码' } }).extend({ minLength: 7, maxLength: 10 }),
        submitClick: function () {
            if (viewModel.errors().length == 0) {
                //通过验证
                $("#result").css("display", "block");
                return true;
            } else {
                viewModel.errors.showAllMessages();
                return false;
            }
        }
    };
 
    viewModel.errors = ko.validation.group(viewModel);

    ko.applyBindings(viewModel);
</script>
</body>
</html>

 

分享到:
评论

相关推荐

    前端项目-knockout-validation.zip

    **前端项目-knockout-validation.zip** 是一个包含KnockoutJS验证插件的前端开发资源包,主要用于在基于KnockoutJS的项目中实现模型和属性的验证功能。KnockoutJS是一个流行的JavaScript库,它提供了MVVM(Model-...

    Knockout-Validation:Knockout JS的验证库

    https://cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.4/knockout.validation.js https://cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.4/knockout.validation.min.js jsdelivr ...

    knockout示例

    此外,可以使用`ko.validation.group(viewModel).isValid()`检查整个表单是否有效,或者`ko.validation.group(viewModel).showAllMessages(false)`在需要时显示所有错误信息。 通过这样的组合,`WebApp`项目可以...

    knockout-validation-bootstrap-tooltip

    而**Knockout.validation** 是一个与Knockout.js配套使用的验证插件,它提供了模型验证的功能,帮助开发者确保输入的数据符合预设的规则。 **Bootstrap** 是一个流行的前端开发框架,用于快速构建响应式、移动优先...

    knockout-userform:基本用户表单,测试knockout.js

    在"knockout-userform"项目中,可能会用到Knockout的验证插件,如knockout-validation,用于验证用户输入的数据,确保它们符合预期的格式或规则。 **7. 观察者模式** Knockout.js基于观察者模式,当ViewModel中的...

    description_Knockout_验证_

    为了将验证错误展示给用户,我们可以利用`ko.validation.group`或`ko.validation.group(model, { deep: true })`来创建一个验证组,并监听其`errors`属性的变化。一旦有验证失败,我们可以将错误消息显示在相应的...

    TypeScript类型定义DefinitelyTyped.zip

    Knockout.Validation (by Dan Ludwig) Knockout.Viewmodel (by Oisin Grehan) ko.editables (by Oisin Grehan) KoLite (by Boris Yankov) Leaflet (by Vladimir) Libxmljs (by François de Campredon) ...

    knockout-validation-amd:用于淘汰验证或 require.js 的 amd 包装器

    Knockout-validation-amd 是一个专门针对 Knockout.js 框架的验证插件,它提供了 AMD(Asynchronous Module Definition)模块化加载机制,以便在使用 Require.js 或其他遵循 AMD 规范的模块加载器时能更好地整合和...

    kv-es6-docs:一个使用 ES6 和 Knockout 创建的简单应用程序,用于浏览 Knockout-Validation 文档

    kv-es6-docs 一个使用 ES6 和 Knockout 创建的简单应用程序,用于浏览 Knockout-Validation 文档。应用结构应用程序的主要部分: src包含使应用程序(脚本、样式等) src/app包含制作应用程序部分(页面、组件等)的...

    sxsw-event-app-knockout:带淘汰表的事件应用程序

    5. ** Knockout.js 的扩展和插件**:项目可能使用了一些社区开发的扩展和插件,比如 Knockout-Validation 用于验证用户输入,或者 Knockout-Router 用于管理应用程序的路由。 **应用场景** 在SXSW这样的大型活动中...

    knockout快速入门

    验证(Validation)** 虽然Knockout本身不包含内置的验证功能,但可以通过插件轻松添加。这些插件允许你定义验证规则,并在用户输入时实时反馈错误信息。 **8. 动态模板** Knockout支持动态模板,允许你根据数据...

    js中自定义react数据验证组件实例详解

    我们在做前端表单提交时,经常会遇到要对表单中的数据进行校验的问题。如果用户提交的数据不合法,例如格式不正确、非数字类型、超过最大长度、是否必填项、最大值和...ko.validation.rules['money'] = { validator:

    浅析JS中什么是自定义react数据验证组件

    我们在做前端表单提交时,经常会遇到要对表单中的数据进行校验的问题。如果用户提交的数据不合法,例如格式不正确、非数字类型、超过最大长度、是否必填项、最大值...ko.validation.rules['money'] = { validator: fun

    knockout 中文文档 官方文档 打包下载

    10. **验证(Validation)**:虽然Knockout自身不包含内置的验证功能,但可以通过扩展实现,比如knockout-validation插件,它可以方便地进行表单验证。 通过压缩包中的"KnockoutJS学习文档.chm"和"knockout.pdf",...

    knockout-groupValidation:像Asp一样的敲除验证。 使用验证组机制

    这可以通过扩展 `ko.validation.rules` 对象来实现。 ```javascript ko.validation.rules['customRule'] = { validator: function (val, otherParam) { // 自定义验证逻辑 return val === otherParam; }, ...

    some knockout js and pages

    8. **扩展和插件**:Knockout有一个活跃的社区,提供了许多扩展和插件,如knockout-postbox用于跨视图模型通信,knockout-mapping用于JSON到ViewModel的映射,以及knockout-validation用于表单验证。 9. **页面应用...

    knockout-form-validation

    评估这是包含Oracle Cloud Commerce培训课程的模块2的最终项目的初始模板。... 您的工作是通过重构该模板中可用的静态代码来增加项目的交互性。 目标是通过执行CEP查询并在各自... 使用Knockout-validations验证表单,创

    knockout-simple-validation:用于验证淘汰赛的简单 JavaScript 库 (http

    #knockout-simple-validation (ksv) 这是一个简单的 JavaScript 库,用于验证淘汰赛 ( ) 模型。 我的英语很糟糕,因此,欢迎任何修改##依赖 - jquery-1.4.1 or higher- knockout-2.0 or higher- momentjs-2.8 or ...

    KnockoutJs中文教程

    KnockoutJS可以通过第三方库如knockout-validation来实现表单验证,提供实时的用户输入检查和反馈。 **8. 与其他库和框架的集成** 尽管KnockoutJS本身已经很强大,但它也能很好地与jQuery、AngularJS、React等其他...

Global site tag (gtag.js) - Google Analytics