您好,欢迎访问一九零五行业门户网

datalist输入框与后台数据库数据的动态匹配

这次给大家带来datalist输入框与后台数据库数据的动态匹配,datalist输入框与后台数据库数据的动态匹配的注意事项有哪些,下面就是实战案例,一起来看一下。
最近项目中涉及到一个小功能,客户在选择供应商时,由于供应商数目较多(大概3000个左右),因此直接生成下拉框显然不现实,所以就更换解决方案,打算借助html5新增的标签datalist来实现输入中文/拼音首字母时,自动进入数据库模糊查询,并返回相应的结果,生成datalist,由于在输入框中的输入内容发生变化时,datalist会自动触发下拉框,所以使用起来比select更便捷。前端部分代码如下:
html code:
<!doctype html>   <html lang="en">     <head id="head">       <title>库存下拉框测试</title>       <meta charset="utf-8">       <meta content="ie=edge,chrome=1" http-equiv="x-ua-compatible">       <meta name="viewport" content="width=device-width, initial-scale=1.0">       <meta name="description" content="">       <meta name="author" content="">       <script src="../../common/content/jquery-1.7.2.min.js"type="text/javascript"></script>       <script src="../../common/pages/include.js" class="include" type="text/javascript"></script>       <script src="../../common/js/ajaxjson.js" type="text/javascript"></script>       <script src="../../common/js/setting.js" type="text/javascript"></script>       <script src="../../common/js/paging.js" type="text/javascript"></script>       <script src="../../js/warehousemanage/testyy.js" type="text/javascript"></script>      </head>     <body class="">       <!--<![endif]-->       <p class="navbar"></p>       <p class="sidebar-nav"></p>       <p class="content">           <p class="header"><h1 id="adu" class="page-title">下拉框测试</h1></p>           <p class="container-fluid">               <p class="row-fluid">                   <!-- --------------------------多条件查询--------------------------------------------- -->                   <p class="well" id="searchdemo">                   <p>测试数据(默认均为d00001):<br>    昆山市大陆配件有限公司     ksdlpjyxgs <br>                               亿真企业有限公司                        yzqyyxgs        <br>                               泰州市安誊轴皮厂(集团厂)   tzsatzpc(jtc)                   </p>                     </p>                       按 供应商名动态匹配(中文或者拼音均可):                       <input list="bro" id="name" oninput="this.value=this.value.replace(/^ +| +$/g,'');search('name','bro','name')" >                       <datalist id="bro"></datalist>                </p>           </p>       </p>        </body>                      <!-- -----------------------footer-------------------------- -->                   <footer class="foot"></footer>   </html>
javascript code:
var listobj=null;            //datalist对象   var requestitem=null;        //后台返回的json数据中所需的key值   var inputcontent=null;       //input标签对象   /**search()说明:   * inputid:     input标签的id   * datalistid:  datalist标签的id   * itemname:    后台返回的json数据中所需的key值(仅需表格中中文字段的属性名)   * */   function search(inputid,datalistid,itemname)   {       inputcontent=document.getelementbyid(inputid);       var datalist=document.getelementbyid(datalistid);       //防止在无输入内容的情况下产生遗留下拉选项       if(inputcontent.value.length==0||inputcontent.value== )       {              var sub=datalist.childnodes;           if(sub.length>0)           {               for (var i =sub.length-1; i>=0 ; i--)                {                   datalist.removechild(sub[i]);                      }           }           listobj=null;                      requestitem=null;                   inputcontent.value=null;           return false;       }       //全局变量赋值       listobj=datalist;       requestitem=itemname;       var data=;       var url=;        if(/^[a-za-z]*$/.test(inputcontent.value))       {           //检测出是拼音首字母           data=type=searchwords¶m=+inputcontent.value;      //注意:data-----------需要自定义           url=baseurl + /servlet/listdemo;                      //注意:url-----------需要自定义           sendrequest(post,url,data,getresult);       }       else if (/^[\u4e00-\u9fa5]*$/.test(inputcontent.value))       {           //检测出是中文           data=type=searchchinese¶m=+inputcontent.value;    //注意:data-----------需要自定义           url=baseurl + /servlet/listdemo;                      //注意:url-----------需要自定义           sendrequest(post,url,data,getresult);       }   }   //填写仓库下拉框   function getresult(result)    {       var data=result;       var jdata=eval(( + data + ));       var maxlength=10;              //注释:maxlength保证过多查询结果下只显示10条       if(jdata.length<=10) { maxlength=jdata.length; } var sub=listobj.childnodes; for (var i =sub.length-1; i>=0 ; i--)        {           listobj.removechild(sub[i]);    //清空datalist所有的下拉选项        }       if(jdata.length==0)  //没有查询结果       {           alert(没有符合条件的结果,请重输);           inputcontent.value=;    //清空input输入框的值           return false;       }       for (var i=0;i 相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
怎样使用phonegap查找联系人
phonegap的常用事件总结
以上就是datalist输入框与后台数据库数据的动态匹配的详细内容。
其它类似信息

推荐信息