<!DOCTYPE html>
<html>
<head>
<title>JQM latest</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/git/jquery.mobile-git.css">
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://jquerymobile.com/demos/1.3.0-rc.1/js/jquery.mobile-1.3.0-rc.1.js"></script>
<script>
$(document).on("pageinit", function() {
$('#mylist').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({
url: "http://gd.geobytes.com/AutoCompleteCity",
dataType: "jsonp",
crossDomain: true,
data: {
q: $input.val()
}
})
.then(function (response) {
$.each(response, function (i, val) {
html += "<li>" + val + "</li>";
});
$ul.html(html);
$ul.listview("refresh");
$ul.trigger("updatelayout");
$ul.find('li').on("click", function() {
$input.val($(this).text());
});
});
}
});
});
</script>
<style>
#edit-with-js-bin { display: none !important; }
</style>
</head>
<body>
<div data-role="page">
<div data-role="content" id="content">
<form class="ui-filterable">
<!--<input type="text" data-type="search" id="myinput">-->
<ul data-role="listview" data-inset="true" data-filter="true" data-filter-reveal="true" data-input="#myinput" id="mylist">
</ul>
</form>
</div><!-- /content -->
</div><!-- /page -->
</body>
</html>
觀看演示:http://jsbin.com/ivEZUJU/5/
嗨@Jianhong感謝您迴應:)這個例子似乎有一定道理,但是我看不到的方式輸入數據的值/標籤之間進行區分。我編輯了你的代碼來填充一個文本框(這需要完成與表單一起提交)http://jsbin.com/upirol/59/watch?html,js,console,output – user714852
沒問題。只要它能夠以最佳方式滿足您的需求並且可以維護。通常標籤是用於顯示的目的,它不能識別價值。就像你在html中的選擇選項一樣,價值就是識別,而任何外在的只是爲了顯示目的。 – Jianhong