我正在尝试创建一个自动完成,其中列表视图是从数据库动态创建的,为此我返回列表视图中的 js 文件中的代码创建过滤,然后将选定的列表文本附加到输入字段并制作列表隐。我将 id 应用于列表视图,该列表视图的 id 与表中数据的 id 相同,以便获取所选列表的 id。我想要的是将选择列表的 id 重新运行到 html 页面,以便我以后可以使用它来将其保存到我正在使用 Jquery 移动自动完成的数据库中。这是自动完成的js代码:
var db = window.openDatabase("Database", "1.0","BPS CRM", 200000);
function createlist(){
alert("i am in js ");
var usrname=new Array();
var usrid= new Array();
$( "#autocomplete" ).on( "listviewbeforefilter", function ( e, data ) {
var $ul = $( this ),
$input = $( data.input ),
value = $input.val(),
html = "";
$ul.html( "" );
db.transaction(function(tx){
tx.executeSql('select * from users',[],function(tx,results){
var dataset=results.rows;
if(dataset.length>0){
for(var i=0;i<dataset.length;i++){
usrname[i] =dataset.item(i).user_name;
usrid[i] = dataset.item(i).user_id;
console.log("Id from the database: "+usrid[i]);
}
}
});
});
if ( value && value.length > 1 ) {
for(var j=0;j<usrname.length;j++){
html +="<li id='"+usrid[j]+"'>"+usrname[j]+"</li>";
}
$ul.html( html );
$ul.listview( "refresh" );
$ul.trigger( "updatelayout");
$.mobile.activePage.find('input[placeholder="Find a city..."]').attr('id','namesearch');
}
$("ul>li").click(function(){
var textval=$(this).text();
var id=$(this).attr('id');
alert("Id of selected user: "+id);
$('#namesearch').val(textval);
$.mobile.activePage.find("[data-role=listview]").children().addClass('ui-screen-hidden');
});
});}
这是html脚本代码:
$(function(){
createlist(); }
<ul id="autocomplete" data-role="listview" data-inset="true" data-filter="true" data-filter-placeholder="Find a city..." data-filter-theme="d" >
</ul>