我正在创建一个应用程序,我在其中使用自动完成视图,列表是在js文件中动态创建的。知道我想要的是如果我创建了多个autocompete我想申请和不同的id到输入类型='搜索'是由jquery移动自动完成创建的我试图将id应用到输入字段但是发生了什么是它的将sane id应用于role ='search'的所有输入字段。但我想为每个输入字段赋予不同的id,其中role ='search'。 以下是自动完成的js代码:
$( document ).on( "pageinit", "#myPage", function() {
$( "#autocomplete" ).on( "listviewbeforefilter", function ( e, data ) {
var $ul = $( this ),
$input = $( data.input ),
value = $input.val(),
html = "";
$ul.html( "" );
if ( value && value.length > 1 ) {
html +="<li >Xyz</li>";
html +="<li >Abc</li>";
$ul.html( html );
$ul.listview( "refresh" );
$ul.trigger( "updatelayout");
$.mobile.activePage.find('input[data-type="search"]').attr('id','namesearch');
}
$("ul>li").click(function(){
var textval=$(this).text();
$('#namesearch').val(textval);
$.mobile.activePage.find("[data-role=listview]").children().addClass('ui-screen-hidden');
});
});
$("#autocomplete1").on("listviewbeforefilter",function(e,data){
var $ul = $(this),
$input=$(data.input),
value = $input.val(),
html = "";
$ul.html('');
if(value && value.length >1) {
html +="<li>efg</li>";
html +="<li>hijk</li>";
$ul.html(html);
$ul.listview("refresh");
$ul.trigger("updatelayout");
$('#autocomplete').parent('div').find('input[data-type="search"]').attr('id','namesearch1');
}
$("ul>li").click(function(){
var textval1 = $(this).text();
$("#namesearch1").val(textval1);
$.mobile.activePage.find("[data-role=listview]").children().addClass('ui-screen-hidden');
});
});});
这里是创建的html代码:
<ul id="autocomplete" data-role="listview" data-inset="true" data-filter="true" data-filter-placeholder="Find a city..." data-filter-theme="d">
</ul>
<ul id="autocomplete1" data-role="listview" data-inset="true" data-filter="true" data-filter-placeholder="Find a city..." data-filter-theme="d">
</ul>
答案 0 :(得分:0)
在提出问题之前我做了一个简单的改变。 我只是改变了代码 形式:
$.mobile.activePage.find('input[data-type="search"]').attr('id','namesearch');
到此:
$.mobile.activePage.find('input[placeholder="Find city..."]').attr('id','namesearch');
在我找到数据类型之前,因为它将id应用于所有具有数据类型=搜索的字段。