最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 15:05:53
文档

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

datalist输入框与后台数据库数据的动态匹配:这次给大家带来datalist输入框与后台数据库数据的动态匹配,datalist输入框与后台数据库数据的动态匹配的注意事项有哪些,下面就是实战案例,一起来看一下。最近项目中涉及到一个小功能,客户在选择供应商时,由于供应商数目较多(大概3000个左右),因此直
推荐度:
导读datalist输入框与后台数据库数据的动态匹配:这次给大家带来datalist输入框与后台数据库数据的动态匹配,datalist输入框与后台数据库数据的动态匹配的注意事项有哪些,下面就是实战案例,一起来看一下。最近项目中涉及到一个小功能,客户在选择供应商时,由于供应商数目较多(大概3000个左右),因此直


这次给大家带来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<maxlength;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; 
}

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

推荐阅读:

怎样使用phonegap查找联系人

phonegap的常用事件总结

文档

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

datalist输入框与后台数据库数据的动态匹配:这次给大家带来datalist输入框与后台数据库数据的动态匹配,datalist输入框与后台数据库数据的动态匹配的注意事项有哪些,下面就是实战案例,一起来看一下。最近项目中涉及到一个小功能,客户在选择供应商时,由于供应商数目较多(大概3000个左右),因此直
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top