layui 的册页表单组件,最让人舒服的册页地方在于它不需要你写一行 JS 去校验。你只需要在 input 上挂一个 lay-verify="required",册页提交时它自己就给你拦下来了。册页这种“约定优于配置”的册页思路,确实省了不少事。册页
lay-verify="required"
我见过不少团队,册页注册页动辄几百行 JS,册页又是册页正则又是错误提示的。但 layui 的册页做法很直接——HTML 结构里塞属性,剩下的册页交给框架。就拿用户名来说,册页lay-verify="required|username" 就能同时搞定“必填”和“格式”两层校验。册页你要是册页想加个自定义规则,在 form.verify() 里写个函数就行,册页比那些动不动就要继承基类的方案爽快多了。
lay-verify="required|username"
form.verify()
密码框的设计也值得一提。layui 的 lay-verify="required|pass" 配合 layui.form 的监听事件,能实时给你反馈。我实际敲代码的时候,最烦那种提交后才告诉你“密码太短”的页面——layui 至少能在失焦时提醒,体验上已经赢了一半。
lay-verify="required|pass"
layui.form
注册页还得考虑“确认密码”这种破事。layui 没有内置“两次密码一致”的规则,但你可以在 form.verify 里自己写一个:
form.verify
form.verify({ confirmPass: function(value) { if (value !== $('#pass').val()) { return '两次密码不一致'; } } });
这段代码直接挂在第二个密码框的 lay-verify="required|confirmPass" 上,逻辑清晰,还不用额外引第三方库。比起那些为了一个校验就引入整个 validator 框架的项目,这种轻量感才是 layui 的调性。
lay-verify="required|confirmPass"
提交按钮那边,我习惯用 lay-submit 加 lay-filter="register",然后在 form.on('submit(register)') 里处理 ajax。这样表单的默认提交行为被拦截,数据序列化用 $(this).serialize() 直接搞定,连手动拼参数都省了。你要是后端接口刚好接收 form-urlencoded,那简直是无缝对接。
lay-submit
lay-filter="register"
form.on('submit(register)')
$(this).serialize()
页面整体我用了 layui-container 做居中,再配合 layui-card 把表单包起来。颜色上默认的墨绿主题其实挺耐看的,但你要是嫌老气,CSS 里覆盖几个变量就能换成偏蓝的现代风。我自己的项目就改了 --global-main-color,两行代码的事。
layui-container
layui-card
--global-main-color
最后说个细节——注册页的“协议勾选”。很多人直接丢个 checkbox 完事,但 layui 的 switch 组件在这里反而更醒目。我用 lay-skin="switch" 做了一个“我已阅读并同意”的开关,默认关,没打开就提交,照样被 lay-verify="required" 拦住。这比那些藏在角落里的复选框直观多了。
lay-skin="switch"
写注册页这事,说白了就是“别让用户烦,也别让自己烦”。layui 这套东西虽然不像 Vue 那样能双向绑定,但胜在简单粗暴,适合快速出活。你如果只是要个能用的后台管理注册页,它比你自己从头搓表单要快上三倍不止。
代码敲完,F5 刷新,看着那个干净利落的注册框,你会觉得——嗯,这波不亏。
Copyright © 2016 Powered by layui注册页面,烟消火灭网 sitemap