首页前端开发HTMLdatalist输入框与后台数据库数据的动态匹配

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

时间2024-01-23 07:55:04发布访客分类HTML浏览793
导读:收集整理的这篇文章主要介绍了datalist输入框与后台数据库数据的动态匹配,觉得挺不错的,现在分享给大家,也给大家做个参考。这次给大家带来datalist输入框与后台数据库数据的动态匹配,datalist输入框与后台数据库数据的动态匹配的...
收集整理的这篇文章主要介绍了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;
    imaxlength;
i++)       {
               var obj=document.createElement("option");
               var indexobj=JData[i];
          if(/^[a-zA-Z]*$/.test(inputContent.value))          {
                    obj.value=indexobj[requestItem];
                   obj.innerHTML=inputContent.value;
          }
          if (/^[\u4e00-\u9fa5]*$/.test(inputContent.value))          {
                   obj.value=indexobj[requestItem];
          }
                listobj.appendChild(obj);
           }
          var suffix=document.createElement("option");
          suffix.value=" ";
          suffix.innerHTML="输入更多有关"+inputContent.value+"的信息";
          listobj.appendChild(suffix);
          return false;
  }
    

相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!

推荐阅读:

怎样使用phonegap查找联系人

phonegap的常用事件总结

以上就是datalist输入框与后台数据库数据的动态匹配的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

datalist数据库

若转载请注明出处: datalist输入框与后台数据库数据的动态匹配
本文地址: https://pptw.com/jishu/583933.html
H5中的video标签无法播放mp4文件如何解决 H5的window.postMessage与跨域

游客 回复需填写必要信息