backbone学习笔记:模型(Model)(2)属性验证
2015-03-09 15:51
435 查看
Backbone的属性验证有2种方法:
1.Backbone自带简单的验证方法,但是验证规则需要自己实现
通过validate()方法进行验证,验证规则写在此方法里。
那么什么时候调用validate()完成验证呢?
在调用save()方法时validate()方法被触发,来完成验证,如果validate()返回错误信息,那么save()方法会停止执行,模型的属性也不会被更改。失败的验证还会触发invalid事件。
如果在set()方法中传入参数{validate:true},作为最后一个参数,也会触发validate()方法,完成验证。
var room =new RoomModel()
room.set('name','test',{validate:true})
以上都是属性的自动验证
属性的手动验证:room.isValid()//返回true/false,这种验证不会触发invalid事件
2.利用Backbone扩展插件Backbone.Validation进行属性验证,Backbone.Validation重写了validate()方法,常用的验证规则已经实现,可以直接使用,节约时间
首先要从GitHub网站上下载Backbone.Validation,然后引用文件backbone-validation.js。
使用Backbone.Validation.mixin来扩展Backbone.object():_.extend(Backbone.Model.prototype,Backbone.Validation.mixin)
在validation属性中定义具体的验证规则
验证属性:
1. required:验证模型的某个属性是否必须,值为true/false
2.acceptance:验证某些事情是否被接收,值为true/false
3.min:验证属性值,必须为数字,模型某个属性值只有大于或等于指定的最小值才能验证成功
4.max:验证属性值,必须为数字,模型某个属性值只有小于或等于指定的最大值才能验证成功
5.range:验证属性值,必须为数字,模型某个属性值只有等于指定的某个数值或者在指定的两个值之间才能验证成功
6.length:验证属性值,模型某个属性值的长度必须为指定长度的字符串。
7.minLength:验证属性值,必须为数字,模型某个属性值的长度只有大于或等于指定的最小值才能验证成功
8.maxLength:验证属性值,必须为数字,模型某个属性值的长度只有小于或等于指定的最大值才能验证成功
9.rangeLength:验证属性值,必须为数字,模型某个属性值的长度只有等于指定的某个数值或者在指定的两个值之间才能验证成功
10.one Of:用来验证属性值,必须等于指定的数组当中的一个元素,是区分大小写的
11.equalTo: 验证等于指定另外一个的属性值
12.pattern:验证匹配指定的模式,模式可以是正则表达式,也可以是内置的模式名称
内置模式名称:
number:匹配任意十进制的数字
digits:匹配任意数字序列
email:匹配合法的邮件地址
url:匹配任意合法的URL
1.Backbone自带简单的验证方法,但是验证规则需要自己实现
通过validate()方法进行验证,验证规则写在此方法里。
var RoomModel = Backbone.Model.extend({ validate:function(attrs){ //验证规则 if(!attrs.name){ return "名字不能为空"; } } });
那么什么时候调用validate()完成验证呢?
在调用save()方法时validate()方法被触发,来完成验证,如果validate()返回错误信息,那么save()方法会停止执行,模型的属性也不会被更改。失败的验证还会触发invalid事件。
如果在set()方法中传入参数{validate:true},作为最后一个参数,也会触发validate()方法,完成验证。
var room =new RoomModel()
room.set('name','test',{validate:true})
以上都是属性的自动验证
属性的手动验证:room.isValid()//返回true/false,这种验证不会触发invalid事件
2.利用Backbone扩展插件Backbone.Validation进行属性验证,Backbone.Validation重写了validate()方法,常用的验证规则已经实现,可以直接使用,节约时间
首先要从GitHub网站上下载Backbone.Validation,然后引用文件backbone-validation.js。
使用Backbone.Validation.mixin来扩展Backbone.object():_.extend(Backbone.Model.prototype,Backbone.Validation.mixin)
在validation属性中定义具体的验证规则
var UserModel = Backbone.Model.extend({ validation:{ name:{ required:true }, email:{ pattern: 'email' } } });
验证属性:
1. required:验证模型的某个属性是否必须,值为true/false
2.acceptance:验证某些事情是否被接收,值为true/false
3.min:验证属性值,必须为数字,模型某个属性值只有大于或等于指定的最小值才能验证成功
4.max:验证属性值,必须为数字,模型某个属性值只有小于或等于指定的最大值才能验证成功
5.range:验证属性值,必须为数字,模型某个属性值只有等于指定的某个数值或者在指定的两个值之间才能验证成功
6.length:验证属性值,模型某个属性值的长度必须为指定长度的字符串。
7.minLength:验证属性值,必须为数字,模型某个属性值的长度只有大于或等于指定的最小值才能验证成功
8.maxLength:验证属性值,必须为数字,模型某个属性值的长度只有小于或等于指定的最大值才能验证成功
9.rangeLength:验证属性值,必须为数字,模型某个属性值的长度只有等于指定的某个数值或者在指定的两个值之间才能验证成功
10.one Of:用来验证属性值,必须等于指定的数组当中的一个元素,是区分大小写的
11.equalTo: 验证等于指定另外一个的属性值
12.pattern:验证匹配指定的模式,模式可以是正则表达式,也可以是内置的模式名称
内置模式名称:
number:匹配任意十进制的数字
digits:匹配任意数字序列
email:匹配合法的邮件地址
url:匹配任意合法的URL
相关文章推荐
- backbone学习笔记:模型(Model)(1)基础知识
- 学习笔记:ASP.NET MVC ModelState验证模型状态
- angular学习笔记(四)- input元素的ng-model属性
- [学习笔记]学习主题模型(Topic Model)和PLSA( probabilistic latent semantic analysis)
- Sharepoint学习笔记—架构系列-- Sharepoint的数据模型(DataModel)、数据管理(Data Management)与查询(Query System)
- ASP.NET MVC 学习7、为Model Class的字段添加验证属性(validation attribuate)
- 【原创】Asp.net MVC学习笔记之-基于用途来绑定Model的属性
- Sharepoint学习笔记 –架构系列—Sharepoint的服务器端对象模型(Server Object Model) 1.物理对象层次结构
- MVC学习笔记之:ASP.NET MVC的客户端验证-jQuery.validate验证集合Model验证中的实现
- ThinkPHP学习笔记(十)在Model中完成自动验证前台的表单数据
- 【点击模型学习笔记】Ad centric model discovery for redicting ads' click through rate_ANT2013_Tencent
- struts2学习笔记-模型驱动和属性驱动
- 【原创】Asp.net MVC学习笔记之-基于类型来绑定Model的属性
- backbone.js学习笔记——Model 篇
- Sharepoint学习笔记 –架构系列—Sharepoint的服务器端对象模型(Server Object Model) 3.服务层次结构
- [学习笔记]主题模型(Topic Model)和PLSA( probabilistic latent semantic analysis)
- 【原创】Asp.Net MVC 学习笔记之-使用Model验证
- 转 通用模型之-party model 学习笔记
- 《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记
- 【机器学习-斯坦福】学习笔记9 规则化和模型选择(Regularization and model selection)