mvalidator手机端校验
官网地址:https://github.com/efri-yang/mobileValidate#%E5%8F%82%E6%95%B0
使用方法:
html如下:
<li class="li"><label class="label">车牌号:</label><span class="required"><input type="text" class="field-text input" id="carNumber" name="carNumber" belong="roCar" data-required="true" data-descriptions="carNumber" data-describedby="carNumber-description" data-conditional="digit" data-max="8"></span>
<div id="carNumber-description"></div>
</li>
<li class="li"><label class="label">制造厂商:</label><span class="required"><input type="text" class="field-text input" id="manufacturer" data-required="true" data-descriptions="manufacturer" data-describedby="manufacturer-description"></span>
<div id="manufacturer-description"></div>
</li>
<li class="li"><label class="label">车辆型号:</label><span class="required"><input type="text" class="field-text input" id="carType" data-required="true" data-descriptions="carType" data-describedby="carType-description" ></span>
<div id="carType-description"></div>
</li>
<li class="li"><label class="label">出厂年份:</label><span><input data-role="number" data-digit="0" type="number" class="input" name="factoryYear" id="factoryYear" belong="roCar" data-max="4" data-descriptions="factoryYear" data-describedby="factoryYear-description" data-conditional="greaterNow"></span>
<div id="factoryYear-description"></div>
</li>
<li class="li"><label class="label">车架号码:</label><span><input type="text" class="input" name="frameNumber" id="frameNumber" belong="roCar" data-max="20" data-descriptions="frameNumber" data-describedby="frameNumber-description" data-conditional="digit"></span>
<div id="frameNumber-description"></div>
</li>
js如下:
//表单验证
var descriptions={
carNumber:{
required : '<div class="field-invalidmsg" style="color:red;">请输入车牌号</div>',
conditional : '<div class="field-invalidmsg" style="color:red;">车牌号必须小于8位</div>',
valid : ""
},
manufacturer:{
required : '<div class="field-invalidmsg" style="color:red;">请输入制造厂商</div>',
valid : ""
},
carType:{
required : '<div class="field-invalidmsg" style="color:red;">请输入车辆型号</div>',
valid : ""
},
frameNumber:{
conditional : '<div class="field-invalidmsg" style="color:red;">车架号码必须小于20位</div>',
valid : ""
},
customerName:{
conditional : '<div class="field-invalidmsg" style="color:red;">姓名必须小于20位</div>',
valid : ""
},
email:{
conditional : '<div class="field-invalidmsg" style="color:red;">email必须小于100位</div>',
valid : ""
},
phone:{
conditional : '<div class="field-invalidmsg" style="color:red;">手机号必须小于13位</div>',
valid : ""
},
textarea1:{
conditional : '<div class="field-invalidmsg" style="color:red;">备注必须小于200位</div>',
valid : ""
},
couponCode:{
conditional : '<div class="field-invalidmsg" style="color:red;">优惠券必须小于50位</div>',
valid : ""
},
roNumber:{
required : '<div class="field-invalidmsg" style="color:red;">请输入工单号</div>',
conditional : '<div class="field-invalidmsg" style="color:red;">工单号必须小于16位</div>',
valid : ""
},
appointInDate: {
conditional : '<div class="field-invalidmsg" style="color:red;">请输入预约进厂时间</div>',
valid : ""
},
inDate:{
required : '<div class="field-invalidmsg" style="color:red;">请输进厂时间</div>',
valid : ""
},
factoryYear: {
conditional : '<div class="field-invalidmsg" style="color:red;">出厂年份要大于1900小于今年</div>',
valid : ""
},
textarea2:{
conditional : '<div class="field-invalidmsg" style="color:red;">备注必须小于200位</div>',
valid : ""
}
};
$("#form").validate({
conditional:{
isappointed:function(val){
var flag;
return (isAppointed==true&&val=="") ? false :true;
},
greaterNow:function(val){
if(val){
return ((val<=new Date().getFullYear())&&(val>=1900)||val=="0")?true:false;
}
else return true;
},
digit:function(val,options){
var digit=$(this).attr("data-max");
var length=val.length;
return (length<=digit)?true:false;
}
},
valid: savefunc,
descriptions:descriptions
});
})
重点:
html配置:
data-required="true" data-descriptions="carNumber" data-describedby="carNumber-description" data-conditional="digit"
js配置:
descriptions
conditional
valid
渲染后的效果如下:

在自己的使用过程中由于插件受到自己的框架影响报错,我自己修改了一下又能用了
$.fn.mvalidateDestroy=function(){
var $form=$(this),$fields,
dataValidate=$form.data(name);
if(typeof dataValidate!="object") {
if ($form.is('form') && $.isPlainObject(dataValidate) && typeof(dataValidate.options.namespace) == 'string') {
$fields = $form.removeData(name).find(allTypes);
$fields.off('.' + dataValidate.options.namespace);
}
}
return $form;
}
后来查了一下原因,是因为我用了sui组件,sui修改了zepto.js的data方法,使之能够存储对象,只需要再判断一次datavalidate是不是一个对象即可解决这个报错问题
mvalidator手机端校验的更多相关文章
- 写了个TP5下PHP和手机端通信的API接口校验
写了个PHP和手机端通信的API接口校验 直接发函数吧 public function _initialize() { //定义密码和盐 $password="123456"; $ ...
- C#校验手机端或客户端
以下代码用来检查,客户端是手机端还是PC端 string strUserAgent = Request.UserAgent.ToString().ToLower(); bool isMobile = ...
- 手机端的表单验证和PC端的不同
1.手机端:由于页面小的局限性,表单验证从上到下依次进行,如果上一个验证不通过,则给出错误提示,代码中return回去,不必进行下一个的校验: 2.PC端:页面范围大,一般是在表单的后面或者下面,提示 ...
- 使用localResizeIMG3+WebAPI实现手机端图片上传
前言 惯例~惯例~昨天发表的使用OWIN作为WebAPI的宿主..嗯..有很多人问..是不是缺少了什么 - - 好吧,如果你要把OWIN寄宿在其他的地方...代码如下: namespace Conso ...
- 《JS实现复制内容到剪贴板功能,可兼容所有PC浏览器,不兼容手机端》
前记:本来原生的JS是有提供一个函数来实现这个功能(window.clipboardData),但是很遗憾,这个函数仅仅支持IE和FF浏览器,所以基本用处不大.下边介绍的是一个第三方插件库(ZeroC ...
- 【极品代码】一般人我不告诉他,手机端h5播放时不自动全屏代码
已测适用于ios,某些安卓手机微信下播放视频会出现播放器控件(这个实在是无力吐槽噢,因为之前还遇到过微信播放完视频后竟然无法退出全屏出现广告的情况,只有播放完后刷新页面并且要放到框架页里才能屏蔽微信视 ...
- 判断是pc端还是手机端,并跳转到相应页面
<!-- 判断浏览器是否为手机端 --> <script> // class ! function(navigator) { var user ...
- h5手机端下拉选择城市
<!doctype html><html> <head> <meta http-equiv="Content-Type& ...
- PHP项目实现手机端和PC端的页面切换
目前访问页面的要切换成手机端和PC端,原理是通过对设备作出判断,显示不同的功能和页面. 如果手机端和PC端的功能结构不相同,一般会写两套系统,一套适用于PC端,一套适用于手机端. 如果功能相同,则只需 ...
随机推荐
- ssh无法远程登陆别的机器
ssh无法远程登陆别的机器,提示报错: ssh: symbol lookup error: ssh: undefined symbol: EVP_aes_128_ctr 解决方法如下: 给相应配置文件 ...
- Dirty Flag 模式及其应用
之前在开发中就发现"dirty"是一种不错的解决方案:可以用来延缓计算或者避免不必要的计算.后来在想,这应该也算一种设计模式吧,于是搜索"Dirty设计模式", ...
- JavaScript null 和 undefined
null null 表示一个变量被声明了,并被赋值为空 var lzh = null; console.log(lzh); // null console.log(typeof lzh); // ob ...
- KVO的概述与使用
一,概述 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知.简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知 ...
- 利用Flume采集IIS日志到HDFS
1.下载flume 1.7 到官网上下载 flume 1.7版本 2.配置flume配置文件 刚开始的想法是从IIS--->Flume-->Hdfs 但在采集的时候一直报错,无法直接连接到 ...
- gridcontrol中LayoutView层叠图片效果
1.效果图 2.如上图效果,为比较常见的一种需求,一堆物品图片.有时候需要给不同物品标记,图中左上角就是一张标记性图片.在devexpress里面实现起来也比较容易. 3.部分代码: class Pi ...
- Unity3d的序列帧动画
马上这星期就要过去了,为了完成每星期写一篇博客的目标,熬夜也要写完. 最近项目中用到了很多序列帧动画,之前看教程也接触过序列帧动画,但当时没用到,就没仔细研究,这次就借着这个机会好好总结一下序列帧动画 ...
- Mysql动态sql语句,用当前时间做表名
在mysql备份操作中, 我们可能要使用表名和当前时间来做为备份表的名称,但是MySQL在存储过程中不支持使用变量名来做表名或者列名. 例如:有一个表"user",我需要备份一份, ...
- SecureCRT文件传输模式
前言 如下图所示,SecureCRT6.5.0 有4种文件传输模式. 1)ASCII:最快的传输模式,但只能传文本 2)Xmodem:非常古老的传输协议速度较慢,但由于使用了CRC错误侦测方法,传输的 ...
- shell 获取指定目录下文件名
有两个目录a.b,两个文件夹目录里有一些文件的文件名是一样,不过后缀名不同,我想把a文件夹下跟b文件夹里相同文件名的文件覆盖到b去,并删除b里同名而不同后缀的文件,文件很多 #!/bin/bas ...