站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        Html5新標(biāo)簽datalist實(shí)現(xiàn)輸入框與后臺(tái)數(shù)據(jù)庫(kù)數(shù)據(jù)的動(dòng)態(tài)匹配的詳細(xì)介紹

        HTML5新增的標(biāo)簽datalist實(shí)現(xiàn)輸入中文/拼音首字母時(shí),自動(dòng)進(jìn)入數(shù)據(jù)庫(kù)模糊查詢(xún),并返回相應(yīng)的結(jié)果,生成datalist,由于在輸入框中的輸入內(nèi)容發(fā)生變化時(shí),datalist會(huì)自動(dòng)觸發(fā)下拉框,解決方案非常好,下面通過(guò)本文給大家分享實(shí)例代碼,需要的的朋友參考下吧

        最近項(xiàng)目中涉及到一個(gè)小功能,客戶(hù)在選擇供應(yīng)商時(shí),由于供應(yīng)商數(shù)目較多(大概3000個(gè)左右),因此直接生成下拉框顯然不現(xiàn)實(shí),所以就更換解決方案,打算借助HTML5新增的標(biāo)簽datalist來(lái)實(shí)現(xiàn)輸入中文/拼音首字母時(shí),自動(dòng)進(jìn)入數(shù)據(jù)庫(kù)模糊查詢(xún),并返回相應(yīng)的結(jié)果,生成datalist,由于在輸入框中的輸入內(nèi)容發(fā)生變化時(shí),datalist會(huì)自動(dòng)觸發(fā)下拉框,所以使用起來(lái)比select更便捷。前端部分代碼如下:

        Html Code:

        <!DOCTYPE html>    <html lang="en">      <head id="head">        <title>庫(kù)存下拉框測(cè)試</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">下拉框測(cè)試</h1></p>            <p class="container-fluid">                <p class="row-fluid">                    <!-- --------------------------多條件查詢(xún)--------------------------------------------- -->                    <p class="well" id="searchDemo">                    <p>測(cè)試數(shù)據(jù)(默認(rèn)均為d00001):<br>    昆山市大陸配件有限公司     ksdlpjyxgs <br>                                億真企業(yè)有限公司                        yzqyyxgs        <br>                                泰州市安謄軸皮廠(集團(tuán)廠)   tzsatzpc(jtc)                    </p>                      </p>                        按 供應(yīng)商名動(dòng)態(tài)匹配(中文或者拼音均可):                        <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對(duì)象    var requestItem=null;        //后臺(tái)返回的json數(shù)據(jù)中所需的key值    var inputContent=null;       //input標(biāo)簽對(duì)象    /**search()說(shuō)明:    * inputID:     input標(biāo)簽的ID    * datalistID:  datalist標(biāo)簽的ID    * itemName:    后臺(tái)返回的json數(shù)據(jù)中所需的key值(僅需表格中中文字段的屬性名)    * */    function search(inputID,datalistID,itemName)    {        inputContent=document.getElementById(inputID);        var datalist=document.getElementById(datalistID);        //防止在無(wú)輸入內(nèi)容的情況下產(chǎn)生遺留下拉選項(xiàng)        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))        {            //檢測(cè)出是拼音首字母            data="type=searchWords?m="+inputContent.value;      //注意:data-----------需要自定義            url=baseurl + "/servlet/ListDemo";                      //注意:url-----------需要自定義            sendRequest("post",url,data,getResult);        }        else if (/^[u4e00-u9fa5]*$/.test(inputContent.value))        {            //檢測(cè)出是中文            data="type=searchChinese?m="+inputContent.value;    //注意:data-----------需要自定義            url=baseurl + "/servlet/ListDemo";                      //注意:url-----------需要自定義            sendRequest("post",url,data,getResult);        }    }    //填寫(xiě)倉(cāng)庫(kù)下拉框    function getResult(result)     {        var data=result;        var JData=eval("(" + data + ")");        var maxlength=10;              //注釋?zhuān)簃axlength保證過(guò)多查詢(xún)結(jié)果下只顯示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所有的下拉選項(xiàng)         }        if(JData.length==0)  //沒(méi)有查詢(xún)結(jié)果        {            alert("沒(méi)有符合條件的結(jié)果,請(qǐng)重輸");            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="輸入更多有關(guān)"+inputContent.value+"的信息";        listobj.appendChild(suffix);        return false;    }

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 国产精品福利一区二区久久| 国产精品一久久香蕉国产线看| 亚洲精品高清无码视频| 欧美精品第欧美第12页| 尤物yw午夜国产精品视频| 国产精品夜色视频一级区 | 亚洲中文字幕无码久久精品1| 亚洲自偷自偷精品| 国产精品后入内射日本在线观看| 日本精品一区二区三区在线视频一| 99久久伊人精品综合观看| 国产精品美女久久久久网| 精品久久久久久国产潘金莲 | 真实国产乱子伦精品免费| 国语精品一区二区三区| 亚洲精品中文字幕乱码三区| 国产一区二区精品尤物| 亚洲精品欧美综合| 欧美精品免费观看二区| AAA级久久久精品无码片| 老司机午夜精品视频资源| 亚洲精品无码精品mV在线观看| 亚欧无码精品无码有性视频| 久久久精品波多野结衣| 精品久久久久国产免费| 国产手机在线精品| 国产精品美女网站| 国产精品免费αv视频| 99久久国产主播综合精品| 91精品国产福利在线观看| 免费91麻豆精品国产自产在线观看| 99热这里只有精品在线| 91老司机深夜福利精品视频在线观看| 精品综合久久久久久888蜜芽| 久久国产热精品波多野结衣AV| 欧美精品videosse精子| 老司机性色福利精品视频| 国产精品美女久久久久久2018| 91精品国产9l久久久久| 国产在视频线精品视频二代| 91精品无码久久久久久五月天 |