0

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());              
        }

    });
});
4

1 に答える 1

1

を介してリスナーを入力フィールドにバインドする必要があります.on(...)。私はあなたに例を作りました: http://jsfiddle.net/Calavoow/q8RuD/1/

keyup がバインドする適切なイベントかどうかはよくわかりませんが、PC では動作します。うまくいかない場合は、「変更」にバインドすることもできます。ただし、キーを押すたびに更新されるわけではありません。それが完了したら、オートコンプリートを再適用できます。次の回答を参照してください: Jquery: オートコンプリート ウィジェットのソースを動的に変更できますか?

于 2012-07-14T21:04:20.210 に答える