Jquery mobile 如何在动态创建的输入中实现jquery移动自动完成

Jquery mobile 如何在动态创建的输入中实现jquery移动自动完成,jquery-mobile,autocomplete,Jquery Mobile,Autocomplete,我的文本框和数据是在javascript中动态生成的。如何在数据上应用jquery mobile自动完成 function getHtmlRelate(datat) { var demodata = ''; var labeldata = ""; var inputname = ""; var dropdownidandname = ""; var relateModule = ""; var showstar =""; for (

我的文本框和数据是在javascript中动态生成的。如何在数据上应用jquery mobile自动完成

    function getHtmlRelate(datat) {
    var demodata = '';
    var labeldata = "";
    var inputname = "";
    var dropdownidandname = "";
    var relateModule = "";
    var showstar ="";
    for (data in datat) {
        if (data === "required") {
            if (datat[data] === 1) {
                demodata = demodata + ' ' + data;
                showstar="<span style='color:red;'>*</span>";
            }
        } else if (data === "group" || data === "options" || data === "len" || data === "calculated") {

        } else if (data === "name") {

            inputname = datat[data];
        } else if (data === "id_name") {

            dropdownidandname = datat[data];
        } else if (data === "related_module") {

            relateModule = datat[data];
            console.log("related module= " + relateModule);
        } else if (data === "label") {

            labeldata = "<label for=" + datat[data] +' '+showstar+">" + datat[data] + "</label>";
        } else if (data === "module_name") {

            module_name = datat[data];
        } else {

            demodata = demodata + ' ' + data + '="' + datat[data] + '" ';
        }
    }
    ;

    return labeldata + '<input data-typeahead="' + relateModule + '" data-typeahead-dropdown-id="' + dropdownidandname + '" type="text" name="' + inputname + '" id="' + inputname + '" onkeyup="getDropDown(this.value,\'' + relateModule + '\',\'' + dropdownidandname + '\')"/><select name="' + dropdownidandname + '" id="' + dropdownidandname + '"></select>';

}



function getDropDown(currentinput, relateModule, dropdownId) {

    var mymodule = relateModule.toLowerCase();
    var query1 = currentinput;
    var dropdownhtml = '<option value="0">Select</option>';
    $.post(getrelaterecords + relateModule + '&query=' + query1,
            {session_id: sessionStorage.sessionid},
    function(data) {
        data.forEach(function(entry) {
            dropdownhtml = dropdownhtml + '<option value="' + entry['id'] + '">' + entry['name'] + '</option>';
            console.log("options are - " + dropdownhtml);
        });
        dropdownhtml = dropdownhtml;
        console.log("html is " + dropdownhtml);
        $('#' + dropdownId).html(dropdownhtml);
    });
}
函数getHtmlRelate(datat){ var demodata=''; var labeldata=“”; var inputname=“”; var dropdownidandname=“”; var relateModule=“”; var showstar=“”; 用于(数据中的数据){ 如果(数据=“必需”){ 如果(数据t[data]==1){ 解调数据=解调数据+“”+数据; showstar=“*”; } }else if(数据==“组”| |数据==“选项”| |数据==“len”| |数据==“已计算”){ }else if(数据==“名称”){ inputname=datat[data]; }else if(数据==“id\u name”){ dropdownidandname=datat[data]; }else if(数据===“相关模块”){ relateModule=datat[data]; console.log(“相关模块=“+relateModule”); }else if(数据==“标签”){ labeldata=“”+datat[数据]+”; }else if(数据==“模块名称”){ 模块_name=datat[data]; }否则{ demodata=demodata+''+data+'='+datat[data]+''; } } ; 返回labeldata+“”; } 函数getDropDown(currentinput、relateModule、dropdownId){ var mymodule=relateModule.toLowerCase(); var query1=电流输入; var dropdownhtml='Select'; $.post(getrelaterecords+relateModule+'&query='+query1, {session_id:sessionStorage.sessionid}, 功能(数据){ data.forEach(函数(条目){ dropdownhtml=dropdownhtml+''+条目['name']+''; log(“选项为-”+dropdownhtml); }); dropdownhtml=dropdownhtml; log(“html是”+dropdownhtml); $('#'+dropdownId).html(dropdownhtml); }); } 我现在正在使用下拉列表,但希望使用ListView自动完成,但找不到实现它的方法

更新:

function getLiForRelate(relateModule, dropdownId) {

    var mymodule = relateModule.toLowerCase();
   // var query1 = currentinput;
    var dropdownhtml = '';
    $.post(getrelaterecords + relateModule,
            {session_id: sessionStorage.sessionid},
    function(data) {
        var dropdownhtml = '';
        data.forEach(function(entry) {
            dropdownhtml += '<li><a href="#" data-itemid="' + entry['id'] + '">' + entry['name'] + '</a></li>';
        });


        $('#' + dropdownId).empty().append(dropdownhtml).listview("refresh").filterable("refresh");
//        dropdownhtml = dropdownhtml;
        console.log("html is " + dropdownhtml);
       // $('#' + dropdownId).html(dropdownhtml);
    });


}



function getHtmlRelate(datat) {
var demodata = '';
var labeldata = "";
var inputname = "";
var dropdownidandname = "";
var relateModule = "";
var showstar = "";
for (data in datat) {
    if (data === "required") {
        if (datat[data] === 1) {
            demodata = demodata + ' ' + data;
            showstar = "<span style='color:red;'>*</span>";
        }
    } else if (data === "group" || data === "options" || data === "len" || data === "calculated") {

    } else if (data === "name") {

        inputname = datat[data];
    } else if (data === "id_name") {

        dropdownidandname = datat[data];
    } else if (data === "related_module") {

        relateModule = datat[data];
        console.log("related module= " + relateModule);
    } else if (data === "label") {

        labeldata = "<label for=" + datat[data] + ' ' + showstar + ">" + datat[data] + "</label>";
    } else if (data === "module_name") {

        module_name = datat[data];
    } else {

        demodata = demodata + ' ' + data + '="' + datat[data] + '" ';
    }
}




      getLiForRelate(relateModule,dropdownidandname);

  return labeldata + ' <ul id="'+dropdownidandname+'" data-role="listview" data-filter="true" data-filter-reveal="true" data-filter-placeholder="Search items..."></ul>';
函数getLiForRelate(relateModule,dropdownId){ var mymodule=relateModule.toLowerCase(); //var query1=电流输入; var dropdownhtml=''; $.post(getrelaterecords+relateModule, {session_id:sessionStorage.sessionid}, 功能(数据){ var dropdownhtml=''; data.forEach(函数(条目){ 下拉HTML+='
  • '; }); $('#'+dropdownId).empty().append(dropdownhtml).listview(“刷新”).filterable(“刷新”); //dropdownhtml=dropdownhtml; log(“html是”+dropdownhtml); //$('#'+dropdownId).html(dropdownhtml); }); } 函数getHtmlRelate(datat){ var demodata=''; var labeldata=“”; var inputname=“”; var dropdownidandname=“”; var relateModule=“”; var showstar=“”; 用于(数据中的数据){ 如果(数据=“必需”){ 如果(数据t[data]==1){ 解调数据=解调数据+“”+数据; showstar=“*”; } }else if(数据==“组”| |数据==“选项”| |数据==“len”| |数据==“已计算”){ }else if(数据==“名称”){ inputname=datat[data]; }else if(数据==“id\u name”){ dropdownidandname=datat[data]; }else if(数据===“相关模块”){ relateModule=datat[data]; console.log(“相关模块=“+relateModule”); }else if(数据==“标签”){ labeldata=“”+datat[数据]+”; }else if(数据==“模块名称”){ 模块_name=datat[data]; }否则{ demodata=demodata+''+data+'='+datat[data]+''; } } getLiForRelate(relateModule、DropDownId和Name); return labeldata+'
      ';
      }

      向自动完成listview添加动态项时,需要为listview小部件和可过滤小部件调用刷新:

      var dropdownhtml = '';
      data.forEach(function (entry) {
          dropdownhtml += '<li><a href="#" data-itemid="' + entry['id'] + '">' + entry['name'] + '</a></li>';    
      });
      
      $("#autoComplete").empty().append(dropdownhtml).listview("refresh").filterable("refresh");
      
      var-dropdownhtml='';
      data.forEach(函数(条目){
      下拉HTML+='
    • '; }); $(“#自动完成”).empty().append(dropdownhtml).listview(“刷新”).filterable(“刷新”);
      这是一个正在工作的


      我如何使用您编辑的代码调用我的get下拉函数?请您帮助that@vini,你现在怎么称呼它?这是一样的,只是没有构建选项dom元素,而是现在为listview小部件构建listitem元素。您好,您能检查一下我是否更改了代码,但它没有在ul@vini,美元(“#”+dropdownId)是指现有的UL-DOM元素吗?或者它仍然是HTML标记中的下拉列表?它指的是ul id