js前端检索框的实现

你知道的越多,你不知道的越多;本文仅做记录,方便以后备阅。希望也能帮到正在看这篇文章的你。

接着上次的分享之后,这两天在项目中又Get一个新技能,在前端搜索框实现检索功能,之前检索查询在项目中常规的写法是通过把用户输入的值传到后台接收,然后通过持久层连接数据库,根据SQL语句模糊查询,然后回值给前端页面,这次给大家分享一下不用通过后台直接在前台实现检索查询。

from表单下面给一个input输入框,给一个ID和onInput事件:

 <from action="" method="post" name="Form" id="Form">
    <input type="text" id="yunman" oninput="tableFilter()" name="keywords" placeholder="输入关键字"/>
    <table>
        <thead>    
            <tr>
                <th>编号</th>
                <th>姓名</th>   
            </tr>
        </thead>
        <tbody id="trs">
        <c:choose>
        <c:when test="${not empty varList}">
        <c:if test="${QX.cha == 1 }">
        <c:forEach items="${varList}" var="var">
            <tr>
                <td title="${var.id}" id="${var.id}">${var.id}</td>
                <td title="${var.name}" id="${var.name}">${var.name}</td>
            </tr>
        </c:forEach>
        </c:if>
        <c:if test="${QX.cha == 0 }">
            <tr>
                <td colspan="2" class="center">您无权查看</td>
            </tr>
        </c:if>
        </c:when>
        <c:otherwise>
            <tr class="main_info">
                <td colspan="2" class="center">没有相关数据</td>
            </tr>
        </c:otherwise>
        </c:choose>
        </tbody>
        <tfoot>
            <span>这是table的页脚</span>
        </tfoot>
    </table>
</from>

当用户在输入框输入条件语句查询时,oninput事件触发:

<script type="text/javascript">
    //自动检索
    function tableFilter() {
        var keyword = document.getElementById("yunman").value.toLowerCase().split(" ");
        var table = document.getElementById("trs");
        var ele;
        for (var r = 0; r < table.rows.length; r++) {
             ele = table.rows[r].innerHTML;
             var displayStyle = 'none';
             for (var i = 0; i < keyword.length; i++) {
                 if (keyword == "") { displayStyle = ""; break; }
                 if (ele.toLowerCase().indexOf(keyword[i]) > 0) {
                     displayStyle = '';
                 }else {
                     displayStyle = 'none';
                     break;
                 }
             }
             table.rows[r].style.display = displayStyle;
         }
    }
</script>

根据前端页面style.display = displayStyle;一个样式的属性,可以把值隐藏起来,这样就实现了我们所说的,自动检索。


欢迎大家评论转发,收藏!

由于水平有限,本博客难免有不足,恳请各位大佬不吝赐教!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小七.布灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值