基于 layui模块化 sliderVerify - 滑块验证

分享 未结 71 3030
good_idea
good_idea 2019-1-17
悬赏:20飞吻
更新日志:
2019/2/22 17:45 组件增加重置功能 修复当开启验证 组件验证过程中下滑1px像素

快速上手: 获得 layui 后,将其完整地部署到你的项目目录(或静态资源服务器),你只需要引入下述一个文件:
./sliderVerify/sliderVerify.js
入门案例:
var slider = sliderVerify.render({
elem: '#slider'
})
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="layui/css/layui.css" />
</head>
<body>
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">输入框</label>
<div class="layui-input-block">
<input type="text" name="title" required lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">滑动验证</label>
<div class="layui-input-block">
<div id="slider"></div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
<script src="../layui/layui.js"></script>
<script>
//一般直接写在一个js文件中
layui.config({
base: 'dist/sliderVerify/'
}).use(['sliderVerify', 'jquery', 'form'], function() {
var sliderVerify = layui.sliderVerify,
form = layui.form;
var slider = sliderVerify.render({
elem: '#slider'
})
//监听提交
form.on('submit(formDemo)', function(data) {
if(slider.isOk()){//用于表单验证是否已经滑动成功
layer.msg(JSON.stringify(data.field));
}else{
layer.msg("请先通过滑块验证");
}
return false;
});

})
</script>
</body>
</html>
如果你想按照自己的风格定义样式你可以这样:
var slider = sliderVerify.render({
elem: '#slider',
isAutoVerify:false,//关闭自动验证
bg : 'layui-bg-red',//自定义背景样式名
text : '滑动',
onOk: function(){//当验证通过回调
layer.msg("滑块验证通过");
}
})
效果[嘻嘻]


提交表单时 默认配置为true
isAutoVerify:true,//自动验证
如果未滑动滑块 那么会自动验证阻止提交

另外 如果你不是用的layui的form提交 那么这里提供了一种方法

slider.isOk() //获取当前实例是否已经滑动成功
可以拿去放在你自己想要验证的form中 作为校验依据

或者你可以配置一下滑动成功时的回调
var slider = sliderVerify.render({
elem: '#slider',
onOk: function(){//当验证通过回调
layer.msg("滑块验证通过");
}
})

使用该方法可以将组件重置
slider.reset();
当然 我这里抛砖引玉 大家按需更改即可[微笑] 可以用于学习交流 欢迎大家提提意见
码云 github 在线预览
回帖