Layui提交表單時驗證必選的多選框是否有選中


問題

Layui在表單提交時,會有 checkbox 是必選的,需要在提交的時候進行驗證。

解決方法

  1. 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>
  1. 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>

說明

  1. checkbox 的命名需要是 name + [],如上面例子中使用的是 test[]
  2. Object.keys(data) 是用來獲取數據中的鍵,返回值是一個數組,數組的值為 data 的鍵名。
  3. Array.filter() 用來獲取數組中符合要求的值,傳入的是 callback,返回值是一個數組。上面例子中的函數體是通過正則來進行匹配的,由於 checkboxname 設置為 test[],與正則中的 test 對應,在使用的時候只需要將 test 改為相應的 name 值 即可。
  4. 最后,在驗證不通過時,可以使用 return false 來阻止提交。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM