摘要:
近日由于项目原因使用layui框架进行开发,在做表单验证的时候苦于复选框验证问题找不到答案,于是作为小白的我换了一种思路,不采用官方提供的form-verify,而是采用在提交表单...
近日由于项目原因使用layui框架进行开发,在做表单验证的时候苦于复选框验证问题找不到答案,于是作为小白的我换了一种思路,不采用官方提供的form-verify,而是采用在提交表单的时候进行判断,由此来对复选框进行验证。本文在于提供一种验证思路。
官方form示例(包含验证):https://www.layui.com/demo/form.html
示例代码如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test</title> <script type="text/javascript" src="./layui/jquery-1.12.1.min.js"></script> <script type="text/javascript" src="./layui/layui.js"></script> <link rel="stylesheet" type="text/css" href="./layui/css/layui.css"> <style type="text/css"> .layui-form-checkbox { width: 95%; } </style> </head> <body> <form class="layui-form" action="" lay-filter=""> <div class="layui-form-item"> <label class="layui-form-label">输入框</label> <div class="layui-input-block"> <input type="text" name="username" lay-verify="inputBlock" autocomplete="off" placeholder="请输入标题" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">复选框</label> <div class="layui-input-block"> <input class="chk" type="checkbox" name="testchk1" lay-skin="primary" value="1" title="测试 1"> <input class="chk" type="checkbox" name="testchk2" lay-skin="primary" value="2" title="测试 2"> <input class="chk" type="checkbox" name="testchk3" lay-skin="primary" value="3" title="测试 3"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit="" lay-filter="test">立即提交</button> </div> </div> </form> <script type="text/javascript"> layui.use(['form', 'layedit', 'laydate'], function(){ var form = layui.form, layer = layui.layer, testArr = []; form.verify({ inputBlock: function(value){// 可以使用verify对表单的单选框,下拉框,文本框等进行提交验证 if(value.length < 2){ return '标题不得少于2个字符'; } } }); form.on('submit(test)', function(data){// 根据选中的复选框对应的值存成数组判断数组长度代替验证 for( i = 1; i<4 ; i++){ if(data.field['testchk'+i] != "" && data.field['testchk'+i] != null && data.field['testchk'+i] != undefined){ testArr.push(data.field['testchk'+i]); } } if(testArr > 0 ){ layer.alert(JSON.stringify(data.field), { title: '最终的提交信息' }); return true; }else{ layer.msg('您还未选择复选框',{ time: 10000 }); return false; } }); }); </script> </body> </html>