前端开发实习(一)表单的模糊查询

本文介绍了一个前端模糊搜索功能的实现过程,通过Ajax获取后台数据并在前端进行动态展示。重点介绍了如何利用JavaScript和Ajax结合实现输入框实时反馈及表格数据的模糊匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天要做一个表格的搜索功能,于是开始了一段研究。

数据是Ajax方法接收后台数据,我用一个表单 for循环展现它。

先将前端页面写好:

   <div  id="bg" style ="width:800px;height:400px;z-index:999;left:20%;top:100px;position:fixed;overflow:auto;filter:alpha(Opacity=30);-moz-opacity:0.3;opacity: 0.8;">
    
        <div  style=" position:fixed;border:1px solid;background-color:black" >
        <p style="margin-top:15px"></p>
        <label style="height:80px;color:black;color:white;margin-top:30px;font-size:20px;text-align:center">请输入站点名称:</label>
         <input id="zdid" type="text" name="zdid" style="width:300px;border-radius:8px;height:30px"/>
         <input id="close" type="button" value="关闭"   class="fa fa-plus" style="position:fixed;padding-right:-80px;margin-top:-10px"/>
       <p style="text-align:center"> <input id="tijiao" type="button" value="搜索" class="button button-glow button-rounded button-raised button-primary" style="height:30px;width:120px;text-align:center;color:white;background-color:blue;border-radius:8px" /></p>
        <div style='width:600px;height:300px;overflow:auto;vertical-align: middle; '>
        <table border='1' style="border:1px solid;text-align:center;margin-left: auto; margin-right: auto;background-color:black;color:white">

            <tr  id="firsttr" style="text-align:center;" >
                
            </tr>
           
        </table>
             </div>
        
    </div>
        </div>

赋给tr  id=firsttr  当数据循环遍历的时候就会从这里进入,循环产生表单数据

实现模糊查询我原先的想法是:

1.用input type="text" id='zdid'接受用户输入的数据

2.使用indexof获取数据的值进行比对(ps:indexof()方法返回的是一个子串在另一个字符串中的位置,如果没有找到的话就返回-1,indexof()是从字符串的首部开始比对,lastindexof()是从后面往前比对的)

3.用if判断,当用户输入值时,即 var dt=$('#zdid').val  !=0时,先将所有的tr数据隐藏起来

4.循环遍历一遍表单数据,如果.indexof(dt)的返回值不是-1,就将表单数据显示

这是我原先的想法

在和一位前辈交流后,他提议换个思路:

1.当input 得到值的时候,将表单数据全部清除,

2..用indexof()遍历一遍,匹配到数据就加载出来

下面时实现方法:<script></script>

 // 控制表格内容根据搜索内容显示隐藏的函数
        $("#tijiao").click(function () {//单击查询按钮,执行查询操作
            var code = $("#zdid").val();    //获取input的值 
            $("#firsttr tr").remove();  //清除表单数据
            if (code.length > 0) {     //当input有值时,执行
                function GetFarmList2() {//使用Ajax方法传值,并且进行判比较
                    $.ajax({
                        type: 'POST',
                        url: '/Home/GetFarmList',
                        dataType: 'json',
                        success: function (data) {//成功接受到值的时候,执行
                            var leng = Number(data.length);//获取data数据的长度
                            var htms = "";                         
                            for (var i = 0; i < data.length; i++) {//执行循环遍历
                   var num = data[i].FarmName.indexOf(code);   //取出表单中每一行数据的农场名称执行indexof()方法,与code进行比对
                                if (Number(num) > -1) {         //只要比对结果大于-1,就说明查询到数据                     
                                    htms += "<tr  ><td>" + i  + "</td><td><a href=" + data[i].FarmCode + " style='color:red;text-decoration:underline' >" + data[i].FarmCode + "</a></td> <td>" + data[i].FarmName + "</td><<td>" + data[i].Contacts + "</td><td>" + data[i].state + "</td><</tr>";//拼接表单数据
                                }
                            }                          
                            $("#firsttr").append(htms);    //    将查询到的表单数据载入                 
                         }
                    }
                )
                }
                GetFarmList2();
            }


        }

效果时在点击按钮的时候执行操作

        //表单调用全部数据的方法
    function GetFarmList1() {
       
        $.ajax({
            type: 'POST',
            url: '/Home/GetFarmList',
            dataType: 'json',
            success: function (data) {
                
               var num = Number(data.length);
                //alert(num);
               var htms = "";
               htms += " <tr class='one'><th>行号</th><th>站点ID:</th><th>站点名称:</th><th>站点地址:</th><th>运行状态</th></tr>";
                for (var i = 0; i <num; i++) {

                    htms += "<tr  ><td>"+(i+1)+"</td><td><a href=" + data[i].FarmCode + " style='color:red;text-decoration:underline' >"+ data[i].FarmCode +"</a></td> <td>" + data[i].FarmName + "</td><td>" + data[i].Contacts + "</td><td>" + data[i].state + "</td><</tr>"; 
                    //展示的Html
                }
                $("#firsttr").append(htms);
            
               
            }
        }

    )
    }

该方法时在初始化加载表单数据的

    //搜索事件
        $("#bg").hide();
        $("#anniu").click(function () {
            $("#bg").show();
           
                GetFarmList1();
   
           
        })
        $("#close").click(function () {
            $("#bg").hide();
            $("#firsttr tr").remove();
        })

写完以上代码就实现了,使用Ajax方法从后台获取信息,在表单中进行模糊查询

总结:在进行编码的时候,需要多使用:alert()方法就把它当成断点使用,将它插入写好的方法中,运行调试的时候可以帮助我们进行判断,js方法在什么时候停止了,方便我们快速找到问题bug所在。

由于每次点击按钮都会运行一次表单方法,所以必须在关闭的时候把表单数据清除掉,不然数据就会在表单中累加!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

孙霸天

你的打赏是我不断创作的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值