Maison > interface Web > Tutoriel H5 > le corps du texte

Introduction à l'utilisation de la nouvelle liste de données de balises HTML5

巴扎黑
Libérer: 2017-08-08 16:25:06
original
2755 Les gens l'ont consulté

La nouvelle liste de données de balises HTML5 entre automatiquement dans la base de données pour une requête floue lors de la saisie de la première lettre du chinois/pinyin et renvoie les résultats correspondants pour générer une liste de données. Lorsque le contenu de la zone de saisie change, la liste de données déclenche automatiquement une liste de données. Cadre déroulant, la solution est très bonne. Laissez-moi partager l'exemple de code avec vous à travers cet article. Les amis qui en ont besoin peuvent s'y référer

Un projet récent implique une petite fonction Lorsque les clients choisissent des fournisseurs, en raison du grand nombre de fournisseurs, il y en a beaucoup (environ 3 000), il est donc évidemment irréaliste de générer directement des listes déroulantes, j'ai donc changé de solution et prévu d'utiliser la nouvelle balise datalist en HTML5 pour entrer automatiquement dans la base de données floue requête lors de la saisie de la première lettre du chinois/Pinyin et renvoie le correspondant. En conséquence, une liste de données est générée. Étant donné que la liste de données déclenchera automatiquement la liste déroulante lorsque le contenu de la zone de saisie change, il est plus pratique à utiliser. que de sélectionner. Le code front-end est le suivant :

Code HTML :


<!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,&#39;&#39;);search(&#39;name&#39;,&#39;bro&#39;,&#39;name&#39;)"  >  
                    <datalist  id="bro"></datalist>   
            </p>  
        </p>  
    </p>   
    </body>     
                <!-- -----------------------footer-------------------------- -->  
                <footer  class="foot"></footer>  
</html>
Copier après la connexion

Code JavaScript :


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;  
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!