0

我喜欢在文本框中为我的 jquery 移动页面添加自动完成功能,这样当用户输入时,它应该以 listview 格式显示结果。下面的代码显示了结果,但不是列表视图格式。有人可以指出如何解决它。谢谢。

<!DOCTYPE HTML>
<html>

<head> 
<title>Finder</title>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/ui/1.8.20/jquery-ui.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>

<style>
  input{text-transform:uppercase;} 
</style>
<script>

$(document).ready(function() {

$( "#firstinputbox" ).autocomplete({

source: function( request, response ) {

$.ajax({

url: "http://ziplocator.cloudfoundry.com/rest/startsWithCity/",

dataType: "json",

data: {

maxRows: 10,

startsWith: request.term

},

success: function(data) {

response( $.map( data.zipcodes, function( item ) {
var listItem = ' <li class="ui-btn ui-btn-icon-right ui-li "><div class="ui-btn-inner ui-li"><div class="ui-btn-text"><a href="/XYC/XDetail/' + item.cityName + '" target="_self" class="ui-link-inherit">' + item.zipcodeId + '</a></div><span class="ui-icon ui-icon-arrow-r"></span></div></li>';
$(listItem).appendTo("#suggestions");

return {

label: item.cityName + ", " +item.zipcodeId + ", " + item.state,

value: item.cityName

}

}));

}

});

},

minLength: 1,

open: function() {

},

close: function() {

$('ul li').remove();
//should attach the value to the text box

}

});


}); 

</script>


</head> 
<body> 

<div data-role="page" data-add-back-btn="true" id="inputdialog">
    <div data-role="header">
       <h1>Enter Criteria here</h1>
    </div>
    <div data-role="content">
        <input type="text" id="firstinputbox"  placeholder="Enter here"/>
        <ul id="suggestions" data-role="listview" data-inset="true"></ul>
    </div>
    <div data-role="footer">

    </div>

</div>

</body>
</html>
4

3 回答 3

0

试试这个

<li>标签删除类中......class="ui-btn ui-btn-icon-right ui-li "

然后它以列表视图格式显示结果

于 2012-06-01T06:52:08.497 回答
0

尝试在您的 ajax 成功函数中调用 listview 刷新方法。

$('#suggestions').listview('refresh');
于 2012-05-31T20:26:03.047 回答
0

插入新内容后,您需要在内容上调用 listview() 函数:

$('#suggestions').listview();

有关详细信息,请参阅以利亚庄园的解释

于 2012-05-31T20:22:00.723 回答