领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

「layui」表单验证:验证注册(表单注册与表单验证html)

nixiaole 2025-03-24 18:55:45 知识剖析 8 ℃

注册界面



手动验证获取短信验证码


代码原文



  

  

  
    
      
    
      
    
      
    <script type="text/javascript" src="手动验证接口"></script>

    <script type="text/javascript" src="/resource/js/jquery-3.4.1.min.js"></script>

    机考注册 - 无忧邦




      
用户注册
<script src="/resource/layui/src/layui.js"></script> <script src="/resource/js/md5.js"></script> <script> let MD5code, interval, interval2, loseTime; layui.use(['form', 'layer'], function () { let $ = layui.jquery, layer = layui.layer, form = layui.form; form.verify({ username: function (value, item) { //value:表单的值、item:表单的DOM对象 if (value.length < 4) { return '用户名长度不能低于4位!'; } if (!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)) { return '用户名不能包含特殊字符!'; } if (/(^\_)|(\__)|(\_+$)/.test(value)) { return '用户名首尾不能出现下划线\'_\'!'; } if (/^\d+\d+\d$/.test(value)) { return '用户名不能全为数字!'; } } , password: [ /^[\S]{6,32}$/ , '密码必须6到32位,且不能出现空格!' ] , rePassword: function (value) { if (value === "") return "请输入二次密码!"; let pwd = $('input[name=password]').val(); if (pwd !== value) return "两次密码不一致!"; }); form.on('submit(sendCode)', function (data) { let sendCodeArr = data.field; let phone = sendCodeArr.phone; new TencentCaptcha( document.getElementById('tenCentCaptcha'), '2015348554', function (res) { if (res.ret === 0) { let code = createCode(); MD5code = b64_md5(code); $.ajax({ type: "POST", data: {"phone": phone, "model": "402248", "sign": "无忧邦", "code": code}, url: "/public/api/sms/qcloud/sendVerCode.php", dataType: "json", success: function (result) { if (result.result == "0") { layer.msg("短信下发成功!"); countDown(); console.log(result); } else { layer.msg(result.errmsg); console.log(result); } } }); } else if (res.ret === 2) { layer.msg("已取消验证!"); } else { layer.msg("手动验证失败!"); } }, ); document.getElementById('tenCentCaptcha').click(); return false; }); form.on('submit(register)', function (data) { let register = data.field; let verCode = register.verCode; if (verCode === "") { layer.msg("验证码不能为空!"); } else if (MD5code !== b64_md5(verCode)) { layer.msg("验证码不正确!"); } else { layer.msg("注册成功!"); } return false; }); }); function countDown() { let time = 60; loseTime = 120; interval = setInterval(function () { time--; reButton(time); }, 1000); interval2 = setInterval(function () { loseTime--; if(loseTime<1){ clearInterval(interval2); layer.msg("验证码已失效,请重新获取!"); } }, 1000); } function reButton(time) { if (time < 1) { clearInterval(interval); $('#tenCentCaptcha').attr('disabled', "false"); $('#tenCentCaptcha').attr("class", "layui-btn"); $('#tenCentCaptcha').html("重新获取"); } else { $('#tenCentCaptcha').attr('disabled', "true"); $('#tenCentCaptcha').attr("class", "layui-btn layui-btn-primary"); $('#tenCentCaptcha').html(time + "秒后获取"); } } function createCode() { let arrays = new Array( '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' ); let code = ''; //重新初始化验证码 //随机从数组中获取四个元素组成验证码 for (let i = 0; i < 4; i++) { //随机获取一个数组的下标 let r = parseInt(Math.random() * arrays.length); code += arrays[r]; } return code; } </script>

Tags:

最近发表
标签列表