文档章节

Knockout.Validation

吃兔纸不吐毛
 吃兔纸不吐毛
发布于 2016/12/09 16:08
字数 476
阅读 6
收藏 0

这个框架比较冷门,百度上相关的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>

 

© 著作权归作者所有

共有 人打赏支持
上一篇: SQL语句
下一篇: JSTL 学习笔记
吃兔纸不吐毛
粉丝 2
博文 61
码字总数 30280
作品 0
杭州
私信 提问
MVVM架构~knockoutjs系列之验证成功提示显示

对于knockout.validation来说,我们已经知道了如何去验证大部分表单元素,而有时,我们的需求希望在每个元素验证成功后,去显示正确的提示,这个我们很容易的使用self.元素.isValid()方法来实...

mcy247
2017/12/06
0
0
TypeScript 类型定义--DefinitelyTyped

DefinitelyTyped 包含大量的高质量的 TypeScript 类型定义。 包括: Ace Cloud9 Editor (by Diullei Gomes) AmCharts (by Covobonomo) AngularJS (by Diego Vilar) (wiki) Arbiter (by Aras......

红薯
2013/07/18
3.3K
1

没有更多内容

加载失败,请刷新页面

加载更多
微信小程序 用canvas绘制的图插入到分享中

用canvas绘制图 createNewImg: function () {var that = this;var ctx = wx.createCanvasContext('mycanvas');ctx.setFillStyle("#F4F4F4");// context.setFillStyle("#fff")ctx.fillRe......

潇潇程序缘
6分钟前
0
0
公司报表数据库优化

报表系统优化 背景: 11.22早晨 刚放下背包,收到一份邮件,邮件意思是公司报表数据库慢,让我帮忙看看。邮件还附带了一个SQL文本,指出这个SQL慢。随后电话了开发人员了解事情来龙去脉,原来...

hnairdb
7分钟前
0
0
javascript代码技巧

1、var gt = window.showgt || (windows.showgt="abc");

gtandsn
11分钟前
0
0
TiDB EcoSystem Tools 原理解读(一):TiDB-Binlog 架构演进与实现原理

简介 TiDB-Binlog 组件用于收集 TiDB 的 binlog,并提供实时备份和同步功能。该组件在功能上类似于 MySQL 的主从复制,MySQL 的主从复制依赖于记录的 binlog 文件,TiDB-Binlog 组件也是如此...

TiDB
26分钟前
1
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部