datalist输入框与后台数据库数据的动态匹配
导读:收集整理的这篇文章主要介绍了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输入框与后台数据库数据的动态匹配
本文地址: https://pptw.com/jishu/583933.html
