Layui提交表单时验证必选的多选框是否有选中
程序员文章站
2024-01-05 14:35:22
问题 Layui在表单提交时,会有 是必选的,需要在提交的时候进行验证。 解决方法 1. 在 中添加表单相应内容 2. 在 中进行验证 说明 1. 的命名需要是 ,如上面例子中使用的是 。 2. 是用来获取数据中的键,返回值是一个数组,数组的值为 的键名。 3. 用来获取数组中符合要求的值,传入的是 ......
问题
layui在表单提交时,会有 checkbox
是必选的,需要在提交的时候进行验证。
解决方法
- 在
html
中添加表单相应内容
<form action="" method=""> <!-- checkbox --> <input type="checkbox" name="test[]" value="1" title="1"> <input type="checkbox" name="test[]" value="2" title="2"> <input type="checkbox" name="test[]" value="3" title="3"> <input type="checkbox" name="test[]" value="4" title="4"> <!-- 提交 button --> <button type="submit" class="layui-btn" lay-submit layui-filter="filter">提交</button> </form>
- 在
javascript
中进行验证
<script> layui.use('form', () => { const form = layui.form; form.on('submit(filter)', (obj) => { let data = obj.field; if (!object.keys(data).filter((x) => { return /^test\[\d+\]&/.test(x) }).length) { console.log('请选择'); return false; } }); }); </script>
说明
-
checkbox
的命名需要是name + []
,如上面例子中使用的是test[]
。 -
object.keys(data)
是用来获取数据中的键,返回值是一个数组,数组的值为data
的键名。 -
array.filter()
用来获取数组中符合要求的值,传入的是callback
,返回值是一个数组。上面例子中的函数体是通过正则来进行匹配的,由于checkbox
的name
设置为test[]
,与正则中的test
对应,在使用的时候只需要将test
改为相应的name 值
即可。 - 最后,在验证不通过时,可以使用
return false
来阻止提交。
下一篇: 自定义控件之流式布局