jqueryモバイルページにjqueryオートコンプリートウィジェットを実装して、都市のリストを提案しようとしています。ユーザーが 2 つ以上の文字を入力すると、現在入力されているテキストを Web サービスに渡し、すべての一致を返し、それらを選択ボックスに表示したいと考えています。ただし、現在入力されているテキストを渡す方法がわかりません。結果として、パラメーター「prefixText」に空の文字列が渡されます。その場合、Web サービスはすべての結果を返します。
ユーザーが新しい文字を入力するたびに、ソース呼び出しで prefixText パラメータを更新するにはどうすればよいですか?
<div class="demo">
<div class="ui-widget">
<label for="cities">Cities: </label>
<input id="cities" type="text" />
</div>
<div class="ui-widget" style="margin-top:2em; font-family:Arial">
Result:
<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>
</div><!-- End demo -->
$(function () {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").scrollTop(0);
}
$("#cities").autocomplete({
source: "http://www.mydomain.com/service.svc/cities/?cid=1&pid=3&prefixText=" + $('#cities').val(),
minLength: 2,
select: function (event, ui) {
log(ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value);*/
},
search: function (event, ui) {
alert($('#cities').val());
}
});
});