博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVVM架构~knockoutjs系列之验证信息自定义输出~再续
阅读量:6212 次
发布时间:2019-06-21

本文共 2297 字,大约阅读时间需要 7 分钟。

对于一个项目的表单验证,方式有很多,效果也有很多,具体使用哪种完成取决于产品这边,产品让你用什么,你就要用什么,而做为开发人员,我们要做的就是"整理近可能多的架构方式",这样才可以自由的应变.

对于表单验证,我今天看了新浪的邮箱注册,觉得效果还可以,所以,就写了一个,它利用了knockoutjs里的hasfocus属性,对文本框进行焦点捕捉来实现的.

新浪截图

 

说明:表单元素为焦点时,自动提示要输入的信息,当元素失去焦点时,提示用户输出的正确性,这个功能使用了hasfocus属性,下面看一下代码

HTML代码

账号:
请输入用户名账号,它由字母汉字数字组成.
Email:
请输入你的Email.
手机:
请输入你的电话.

JS代码

     var Product = function () {            var self = this;            ko.validation.configure({
//ko.validation相关配置 insertMessages: false,//不自动插入错误消息 errorElementClass: 'errorElementClass',/*元素的CSS样式*/ errorMessageClass: 'errorMessageClass',/*提示信息CSS的样式*/ }); self.name = ko.observable().extend({ minLength: 2, maxLength: { params: 30, message: "名称最大长度为30个字符" }, required: { params: true, message: "请输入名称", } }); self.selName = ko.observable(false); self.phone = ko.observable().extend({ required: true, number: { params: true, message: "电话不合法", } }); self.selPhone = ko.observable(false); self.Email = ko.observable().extend({ required: { params: true, message: "请填写Email" }, email: { params: true, message: "Email格式不正确" } }); self.selEmail = ko.observable(false); self.Register = function () { self.errors = ko.validation.group(self); if (self.isValid()) { alert("验证成功,数据可以提交"); } else { self.errors.showAllMessages(); } }; }; product = new Product(); ko.applyBindings(product);

页面截图

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
高仿Instagram 页面效果android特效
查看>>
2016 年总结
查看>>
将String转化成Stream,将Stream转换成String
查看>>
java路径Java开发中获得非Web项目的当前项目路径
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>