利用Knockoutjs对电话号码进行验证
问题来源
最近在项目中前端使用Knockoutjs,验证模块自然也是使用Knockoutjs来进行表单验证了,比较头痛,因为没有使用过Knockoutjs,更加别说要去用它做表单验证了,于是乎恶补了一下Knockoutjs相关的验证用法,也好记录一下!
验证需求
这里只是抽出手机号码验证进行举例一下,其他验证类似!
1、手机号码可以填,可以不填,但填了,必须是要正确格式才能提交
2、如果手机号码错误,则给出相应提示,并聚焦当前文本框
例子演示
根据查阅资料,对于Knockoutjs本身来说,没有提供验证模块,不过,有第三方的扩展,就像你为jquery库作extensions一样,knockout也有一个自己的验证扩展knockout.validation.js,用它来实现对HTML标记的验证!
首先要引入这两个JS文件
<script src="~/Scripts/knockout-3.2.0.js"></script>
<script src="~/Scripts/knockout.validation.min.js"></script>
看前端js代码
<script type="text/ecmascript">
var UserInfo = function () {
var self = this; self.Phone = ko.observable('').extend({
validation: {
validator: function (val, someOtherVal) {
var telReg = !!val.match(/^(||)?([-]|[]|[]|[-]|[])[-]{}$/);
if (val == "") {//如果为空,直接通过
return true;
} //如果手机号码不能通过验证
else if (telReg == false) { return false;
}
else {
return true;
} },
message: '请输入正确格式的号码',
params:
},
required: false
}) self.Email = ko.observable().extend({
required: {
params: true,
message: "请输入你的邮箱"
},
email: {
params: true,
message: "邮箱格式不正确"
}
}); self.SubmitMsg= function () {
self.errors = ko.validation.group(self);
if (self.isValid()) {
alert('提交成功');
} else {
self.errors.showAllMessages();
}
}; }
var viewModel = new UserInfo();
ko.applyBindings(viewModel); </script>
看看html部分
<fieldset>
<legend>个人信息</legend>
<div class="editor-label">
<input data-bind='value: Phone' />
</div>
<div class="editor-field">
<input data-bind='value: Email' />
</div>
<p>
<input type="button" value="提交" data-bind="click:SubmitMsg" />
</p>
</fieldset>
至此验证完成,先分析一下,分别对做了数据有效性的验证,并且每个验证中的参数都可以以JS对象或者属性的形式存在,相信可以很清楚的看到,如果是JS对象的话,那么params表示参数的值,而message表示提示的信息,当然里面的验证属性,你可以自定义自己的提示来做。
利用Knockoutjs对电话号码进行验证的更多相关文章
- 利用ZYNQ SOC快速打开算法验证通路(1)——MATLAB浮点数与定点二进制补码互转
最近本人一直在学习ZYNQ SOC的使用,目的是应对科研需要,做出通用的算法验证平台.大概思想是:ZYNQ PS端负责与MATLAB等上位机数据分析与可视化软件交互:既可传输数据,也能通过上位机配置更 ...
- 支持向量机(SVM)利用网格搜索和交叉验证进行参数选择
上一回有个读者问我:回归模型与分类模型的区别在哪?有什么不同,我在这里给他回答一下 : : : : 回归问题通常是用来预测一个值,如预测房价.未来的天气情况等等,例如一个产品的实际价格为500元,通过 ...
- 利用ZYNQ SOC快速打开算法验证通路(6)——利用AXI总线实时配置sysGen子系统
利用ZYNQ验证算法的一大优势在于,可以在上位机发送指令借助CPU的控制能力和C语言易开发特点,实时配置算法模块的工作模式.参数等对来对其算法模块性能进行全面的评估.最重要的是无需重新综合硬件模块. ...
- 利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
一.前言 利用FPGA设计算法一直以来都是热点,同样也是难点.将复杂的数学公式 模型通过硬件系统来搭建,在低延时 高并行性等优势背后极大提高了设计难度和开发周期.Xilinx公司的sysGen(sys ...
- 利用ZYNQ SOC快速打开算法验证通路(4)——AXI DMA使用解析及环路测试
一.AXI DMA介绍 本篇博文讲述AXI DMA的一些使用总结,硬件IP子系统搭建与SDK C代码封装参考米联客ZYNQ教程.若想让ZYNQ的PS与PL两部分高速数据传输,需要利用PS的HP(高性能 ...
- 利用ZYNQ SOC快速打开算法验证通路(2)——数据传输最简方案:网络调试助手+W5500协议栈芯片
在上一篇该系列博文中讲解了MATLAB待处理数据写入.bin二进制数据文件的过程,接下来需要将数据通过以太网发送到ZYNQ验证平台.之前了解过Xilinx公司面向DSP开发的System Genera ...
- 利用工具破解HTTP身份验证的多种方法
https://www.hackingarticles.in/multiple-ways-to-exploiting-http-authentication/ 1)场景 利用Apache配置HTTP验 ...
- 利用Hutool-(Java工具类)实现验证码校验
目录 Hutool工具类介绍 Hutool实现验证码生成 测试验证码生成 其他样式的验证码 第一篇是纯利用现有JDK提供的绘图类(ImageIO)类制作,这个过程比较复杂且需要了解ImageIO类. ...
- 利用javascript对提交数据验证
优点:提交前验证.在客户端进行. <html> <head> <script language="javascript"> function c ...
随机推荐
- python对数据类型的相关操作
一.int的相关操作 int只有一个相关操作,bit_length() 用于计算一个数字的二进制长度 二.bool的相关操作 1.把数字转换成bool,除了0,返回的都是True a = 10 p ...
- Linux 目录说解
目录 1.树状目录结构图 2./目录 3./etc/目录 4./usr/目录 5./var/目录 6./proc/目录 7./dev/目录 该文章主要来自于网络进行整理. 目录结构参考地址: http ...
- 1-9-假期训练心得(dp+bfs)
题目一:传送门 思路:就是简单的bfs,注意仔细审题,加上对转弯次数的判断. 题目二:传送门 思路:简单dp,记录每一秒每个位置接到的大饼的数量. 状态转移方程:dp[i][j]=max(dp[i][ ...
- 常用.bat
休眠.bat rundll32 powrprof.dll,SetSuspendState 常用.bat start /d "d:\Program Files (x86)\Tencent\T ...
- svn更新的时候出现ERROR:Previous operation has not finished,run "clean up" if it wa interrupted;进行clean up命令也报错
报错的截图: 然后进行了clean up命令,依旧报错了: 这种情况就有两种方法去解决了,自己可以根据自己的情况选择,哪种方便选择哪种呗! 方法一: 备份自己修改的文件,删除之前download的文件 ...
- hadoop Mapreduce组件介绍
MapReduce原理 MapRedcue采用‘分而治之’的思想,对大规模数据集的操作,分发给一个主节点下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果.Mapreduce就是任务 ...
- 通过sftp操作Linux服务器上的文件(java)
本文为实现对linux服务器文件的操作.windows服务器不支持. 引入jar包:jsch-0.1.42.jar package com.csvreader.sftp; import java.io ...
- Struts2-result
所有result-type <result-types> <result-type name="chain" class="com.opensympho ...
- Keil_uvision 基本使用教程
Keil C51 V9.00 即09年发布的最新版本uVision 4,版本外观改变比较大,可以使用以前的注册文件.如果全新安装,在VISTA或者WIN 7系统下,请使用管理员方式运行,然后注册即可无 ...
- android-基础编程-RecyclerView
以后android-基础编程*都是控件demo里面的,不再累赘重写.直接介绍控件使用. RecyclerView is a more advanced and flexible version of ...