首页前端开发HTMLHtml5新标签datalist实现输入框与后台数据库数据的动态匹配

Html5新标签datalist实现输入框与后台数据库数据的动态匹配

时间2024-01-24 20:20:28发布访客分类HTML浏览720
导读:收集整理的这篇文章主要介绍了Html5新标签datalist实现输入框与后台数据库数据的动态匹配,觉得挺不错的,现在分享给大家,也给大家做个参考。 最近项目中涉及到一个小功能,客户在选择供应商时,由于供应商数目较多(大概3000个...
收集整理的这篇文章主要介绍了Html5新标签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]-->
          div class="navbar">
    /div>
          div class="sidebar-nav">
    /div>
          div class="content">
              div class="header">
    h1 id="ADU" class="page-title">
    下拉框测试/h1>
    /div>
              div class="container-fluid">
                  div class="row-fluid">
                      !-- --------------------------多条件查询--------------------------------------------- -->
                      div class="well" id="seArchDemo">
                      p>
    测试数据(默认均为d00001):br>
        昆山市大陆配件有限公司     ksdlpjyxgs br>
                                  亿真企业有限公司                        yzqyyxgs        br>
                                  泰州市安誊轴皮厂(集团厂)   tzsatzpc(jtc)                  /p>
                        /div>
                          按 供应商名动态匹配(中文或者拼音均可):                      input list="bro"  id="name"   oninput="this.value=this.value.replace(/^ +| +$/g,'');
    search('name','bro','name')"  >
                          datalist  id="bro">
    /datalist>
                   /div>
              /div>
          /div>
           /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;
  }
      

以上所述是小编给大家介绍的Html5新标签datalist实现输入框与后台数据库数据的动态匹配,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

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

datalist标签html5

若转载请注明出处: Html5新标签datalist实现输入框与后台数据库数据的动态匹配
本文地址: https://pptw.com/jishu/585705.html
Html5实现文件异步上传功能 HTML5中indexedDB 数据库的使用实例

游客 回复需填写必要信息