最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
layui单选框如何设置必选才能提交
时间:2026-08-11 09:37:49 编辑:袖梨 来源:一聚教程网
Layui radio 必填需显式加 lay-verify="required",且同 name 组 name 必须完全一致、每个 value 非空,动态操作后须调用 form.render('radio')。
lay-verify="required" 必须显式加在 radio 上
Layui 不会自动把同 name 的 radio 组识别为必填项,哪怕你写了 * 星号或用了 HTML5 的 required 属性,它都完全不认。验证逻辑只响应 lay-verify 属性。
实操建议:
- 只需给同组任意一个
<input type="radio">加上lay-verify="required",Layui 就会关联整组校验 - 别写成
required、required=""或required="true"—— 这些是原生属性,form 模块压根不读 - 如果用 JS 动态插入 radio,插入后必须调用
form.render('radio'),否则lay-verify不生效
name 值必须完全一致,大小写和空格都不能错
表单提交时提示“未选择”,但明明点了,大概率是 name 不统一。Layui 验证靠 name 分组,一旦出现 sex、Sex、 sex 这类差异,整组就被当成多个独立字段,验证直接跳过。
实操建议:
- 用浏览器开发者工具检查真实渲染出的 DOM,确认所有同组 radio 的
name字符串逐字相同 - 不要依赖 JS 拼接或模板引擎变量注入 name,初始化时就写死、写准
- 后端接收字段名也得严格对应这个 name,避免前后端字段对不上
value 不能为空字符串
即使 name 和 lay-verify 都对了,如果某个 radio 的 value="",Layui 会把它当作“未选中”处理,提交时照样报错。
实操建议:
- 每个 radio 的
value必须是非空字符串,例如value="1"、value="male"、value="on" - 避免用空格、
或仅换行符充当 value - 调试时执行
console.log(form.val('yourFormFilter')),确认返回值不是undefined或空串
动态设置默认选中后,必须重新渲染 radio
用 JS 设置 checked 属性或修改 DOM 后,Layui 的 UI 状态不会自动同步,导致视觉已选中但验证仍报“未选择”。
实操建议:
- 手动设
checked后,立刻调用form.render('radio') - 如果是在
form.on('submit')里做判断,记得先取值再验证,别依赖 DOM 的checked属性(它可能被 Layui 覆盖) - 用
form.val('filter', {sex: 'male'})设置值更可靠,它会自动触发渲染和状态更新