md-checkbox

<div class="row m-t-5 pingwei-tag-list hide"> <div class="col-md-2"> <label class="form-label"> 导师搜索: </label> </div> <div class="col-md-10"> <div class="input-group mb-3"> <input type="text" class="form-control search-input" data-id="{$vo.id}" placeholder="请输入评委姓名..." aria-label="Search" > <button class="btn btn-outline" type="button"> <i class="fa fa-search"></i> 搜索 </button> </div> </div> </div> <div class="row assign-select-pingwei hide"> <div class="col-md-2"> <label class="form-label"> <span class="text-danger">*</span>选择评委: </label> </div> <div class="col-md-10"> <div id="pingwei-checkbox" class="selectgroup selectgroup-pills"> {volist name='pingwei' id='vo' } <div class="custom-control custom-checkbox custom-control-inline"> <input type="checkbox" class="custom-control-input form-check-input pingwei-checkbox" id="form-pingwei[{$vo.id}]" value="{$vo.id}" name="pingwei[]"> <label class="custom-control-label" for="form-pingwei[{$vo.id}]" style="cursor: pointer;"><i class="fa fa-tags badge badge-success m-r-5 m-b-5">{$vo.realname}</i></label> <div class="invalid-feedback">请选择...</div> </div> {/volist} </div> </div> </div>// 模糊查询函数 function searchPingwei(name) { const keyword = name?.trim().toLowerCase() || ''; if (!keyword) return pingwei; // 根据姓名模糊匹配 return pingwei.filter(item => { const itemName = item.realname?.trim().toLowerCase() || ''; return itemName.includes(keyword); }); } // 更新评委复选框显示 function updatePingweiDisplay(matchList) { // 1. 隐藏所有 .pingwei-checkbox 元素 document.querySelectorAll('.pingwei-checkbox').forEach(item => { item.style.display = 'none'; }); // 2. 根据 matchList 显示对应的元素 matchList.forEach(item => { const pingweiItem = document.querySelector(`.pingwei-checkbox[data-pingwei-id="${item.id}"]`); if (pingweiItem) { pingweiItem.style.display = 'inline-block'; // 恢复为内联块级显示 } }); } // 页面加载完成后绑定事件 document.addEventListener('DOMContentLoaded', function() { const searchInput = document.querySelector('.search-input'); const searchBtn = document.querySelector('.search-btn'); // 搜索处理函数 const handleSearch = function() { const keyword = searchInput.value; const matchPingwei = searchPingwei(keyword); updatePingweiDisplay(matchPingwei); }; // 输入框实时搜索 searchInput.addEventListener('input', handleSearch); // 搜索按钮点击搜索 searchBtn.addEventListener('click', handleSearch); // 初始化:显示所有评委 updatePingweiDisplay(pingwei); });
12-16
<div class="row m-t-5 pingwei-tag-list hide"> <div class="col-md-2"> <label class="form-label"> 评委搜索: </label> </div> <div class="col-md-10"> <div class="input-group mb-3"> <input type="text" class="form-control search-input" data-id="{$vo.id}" placeholder="请输入评委姓名..." aria-label="Search" @select="handleSelect" > <button class="btn btn-outline search-btn" type="button"> <i class="fa fa-search"></i> 搜索 </button> </div> </div> </div> <div class="row assign-select-pingwei hide"> <div class="col-md-2"> <label class="form-label"> <span class="text-danger">*</span>选择评委: </label> </div> <div class="col-md-10"> <div id="pingwei-checkbox" class="selectgroup selectgroup-pills"> {volist name='pingwei' id='vo' } <div class="custom-control custom-checkbox custom-control-inline"> <input type="checkbox" class="custom-control-input form-check-input pingwei-checkbox" id="form-pingwei[{$vo.id}]" value="{$vo.id}" name="pingwei[]"> <label class="custom-control-label" for="form-pingwei[{$vo.id}]" style="cursor: pointer;"><i class="fa fa-tags badge badge-success m-r-5 m-b-5">{$vo.realname}</i></label> <div class="invalid-feedback">请选择...</div> </div> <!-- <div class="custom-control custom-checkbox custom-control-inline pingwei-item"--> <!-- data-pingwei-id="{$vo.id}">--> <!-- <input type="checkbox" class="custom-control-input form-check-input pingwei-check-input"--> <!-- id="form-pingwei[{$vo.id}]" value="{$vo.id}" name="pingwei[]">--> <!-- <label class="custom-control-label" for="form-pingwei[{$vo.id}]" data-toggle="tooltip"--> <!-- style="cursor: pointer;" title="{$vo.realname}-{$vo.phone}">--> <!-- <i class="fa fa-user"></i>--> <!-- {$vo.realname}--> <!-- </label>--> <!-- </div>--> {/volist} </div> </div> </div> // 获取DOM元素 var searchInput = document.querySelector('.search-input'); var searchBtn = document.querySelector('.search-btn'); var pingweiItems = document.querySelectorAll('.pingwei'); // 所有评委项 // 初始化 function init() { bindEvents(); } // 事件绑定 function bindEvents() { // 输入框输入事件 searchInput.addEventListener('input', debounce(handleSearch, 200)); // 搜索按钮点击事件 searchBtn.addEventListener('click', () => handleSearch()); } // 处理搜索逻辑 function handleSearch() { const query = searchInput.value.trim().toLowerCase(); // 如果无关键词,显示所有评委并隐藏提示 if (!query) { pingweiItems.forEach(item => item.style.display = 'inline-block'); loadingTip.style.display = 'none'; emptyTip.style.display = 'none'; return; } // 显示加载状态 loadingTip.style.display = 'block'; emptyTip.style.display = 'none'; setTimeout(() => { let hasMatch = false; // 是否有匹配的评委 // 遍历评委项进行模糊匹配 pingweiItems.forEach(item => { const name = item.dataset.name.toLowerCase(); if (name.includes(query)) { item.style.display = 'inline-block'; hasMatch = true; } else { item.style.display = 'none'; } }); // 隐藏加载状态 loadingTip.style.display = 'none'; // 根据是否有匹配显示空提示 emptyTip.style.display = hasMatch ? 'none' : 'block'; }, 200); } // 启动初始化 init();
最新发布
12-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值