如何在phonegap android中动态应用id?

时间:2013-09-02 05:19:05

标签: javascript android jquery-mobile autocomplete cordova

我正在创建一个应用程序,我在其中使用自动完成视图,列表是在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>

1 个答案:

答案 0 :(得分:0)

在提出问题之前我做了一个简单的改变。 我只是改变了代码 形式:

 $.mobile.activePage.find('input[data-type="search"]').attr('id','namesearch');

到此:

 $.mobile.activePage.find('input[placeholder="Find city..."]').attr('id','namesearch');

在我找到数据类型之前,因为它将id应用于所有具有数据类型=搜索的字段。