HTML5新增的標籤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="下拉框测试">下拉框测试</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; }
【相關推薦】
1. #HTML免費影片教學
以上是Html5 datalist標籤詳解以及與後台資料的動態匹配的詳細內容。更多資訊請關注PHP中文網其他相關文章!

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增強WebevebDevelopment。

HTML是構建網頁結構的基石。 1.HTML定義內容結構和語義,使用、、等標籤。 2.提供語義化標記,如、、等,提升SEO效果。 3.通過標籤實現用戶交互,需注意表單驗證。 4.使用、等高級元素結合JavaScript實現動態效果。 5.常見錯誤包括標籤未閉合和屬性值未加引號,需使用驗證工具。 6.優化策略包括減少HTTP請求、壓縮HTML、使用語義化標籤等。

HTML是一種用於構建網頁的語言,通過標籤和屬性定義網頁結構和內容。 1)HTML通過標籤組織文檔結構,如、。 2)瀏覽器解析HTML構建DOM並渲染網頁。 3)HTML5的新特性如、、增強了多媒體功能。 4)常見錯誤包括標籤未閉合和屬性值未加引號。 5)優化建議包括使用語義化標籤和減少文件大小。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

Dreamweaver CS6
視覺化網頁開發工具