2013-03-18 66 views
1

我有一个问题与JQuery 1.3.0移动自动完成,因为我不知道如何选择一个列表项并将选择添加到不同的DIV或隐藏的输入字段! 这里是我的代码:jquery手机自动完成选择选项

$(document).on("pageinit", "#main", function() 
{ 
    $("#addimageword").on("listviewbeforefilter", function (e, data) 
    { 
     var $ul = $(this), 
     $input = $(data.input), 
     value = $input.val(), 
     html = ""; 
     $ul.html(""); 
     if (value && value.length > 2) { 
      $ul.html("<li><div class='ui-loader'><span class='ui-icon ui-icon-loading'></span></div></li>"); 
      $ul.listview("refresh"); 
      $.ajax({ 
       type : 'GET', 

       url: "./inc/search2.php", 
       dataType: "json", 
       data: { 
        q: $input.val() 
       } 
      }) 
      .then(function (response) { 
       $.each(response, function (i, val) { 
        var substr = val.split('_'); 
        var idword = substr[0]; 
        var your = substr[1]; 
        var lblyour = substr[2]; 
        var learn = substr[3]; 
        var lbllearn = substr[4]; 

        var lblyourlang = substr[6]; 
        var lbllearnlang = substr[7]; 

        html += "<li><a href='#'>" +lblyour+": "+your+" - "+lbllearn+": "+learn+ "</a></li>"; 
       }); 
       $ul.html(html); 
       $ul.listview("refresh"); 
       $ul.trigger("updatelayout"); 
      }); 
     } 
    }); 

    $('#addimageword li a').click(function(){ 

     var listItemText = $(this).text; 
     $('#result').text(listItemText); 
     $('#addimageword').children('li').hide(); 
     $('#addimageword').bind(function(){ 
      $.mobile.listview.prototype.options.filterPlaceholder = listItemText; 
     });   
     e.preventDefault(); 
    }) 

    <ul id="addimageword" 
     data-role="listview" 
     data-inset="true" 
     data-filter="true" 
     data-filter-placeholder="Type in your word" data-filter-theme="d"> 
    </ul> 

    <div id="result"> 

    </div> 

有谁知道它是如何工作的?

感谢的提前...

+0

你解决这个问题?我有同样的问题,我的列表返回,但我如何选择和填充ul \输入? – 2013-03-28 20:19:33

回答

0

做这样的事情在你的。那么()

.then(function (response) { 
    $.each(response, function (i, val) { 
    html += '<li class="surgeon" id="surgeon_' + val.id + '"">' + val.name + '</li>'; 
    }); 
    $ul.html(html); 
    $ul.listview("refresh"); 
    $ul.trigger("updatelayout"); 
    $('.surgeon').click(function(){ 
    var id = $(this).attr('id').split('_'); 
    $('#InputId').val(id[1]); 
    }); 
}); 
0

由于LI是你需要使用.delegate()在页面加载后添加。

给了a标签就像一个类:

html += "<li><a class="example">" +lblyour+": "+your+" - "+lbllearn+": "+learn+ "</a></li>"; 

然后有这样一个功能:

$('body').delegate('.example', 'click', function() { 
    var val = $(this).html(); 
    $('$hiddeninput').html(val); 
}); 
0

你可以试试这个:

$('#addimageword').on('click', 'li a', function() { 
    var listItemText = $(this).closest("li").text(); 
    $('#result').text(listItemText); 
    //other code 
});