利用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 ...
随机推荐
- linux中命令突然不能用
先用:echo $PATH 发现path丢失:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 于是用临时环境变量 export ...
- test面板1
Ext.onReady(function(){ var myPanel=new Ext.TabPanel({ renderTo:Ex ...
- idea如何将项目以eclipse保存
会生成 提交到svn eclipse 导入 首先使用TortoiseSVN下载要导入的项目 导入 已经存在的maven 项目 clean install -DskipTests t ...
- 2019.02.07 bzoj1487: [HNOI2009]无归岛(仙人掌+树形dp)
传送门 人脑转化条件过后的题意简述:给你一个仙人掌求最大带权独立集. 思路:跟这题没啥变化好吗?再写一遍加深记忆吧. 就是把每个环提出来分别枚举环在图中的最高点选还是不选分别dpdpdp一下即可,时间 ...
- matlab柱面图
f=@(x,y)log(y); % ln(x)函数,平行于x轴ezsurf(f,[-pi*2,pi*2,0,20])
- php,ajax上传文件,多文件上传
HTML <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...
- 论文翻译技巧--Notepad替换回车
- 后台开发 - DPDK引发的图谱
关系图谱(点击看完整大图): 部分名词: 名词 全写 解释 备注 DPDK Data Plane Development Kit 数据平面开发套件或叫数据平面开发工具集 Intel开源的快速数据包处理 ...
- Codeforces Round #540 (Div. 3)--1118D2 - Coffee and Coursework (Hard Version)
https://codeforces.com/contest/1118/problem/D2 和easy version的主要区别是,数据增加了. easy version采用的是线性查找,效率低 在 ...
- 【git】git简单使用教程
git的简单使用教程: 1.安装git bash客户端 2.打开git bash,cd到需要存储代码的路径下, 执行:git clone -b deploy ssh://git@gitlab.xxxx ...